wasup

Android) Activity, Intent 본문

IT/Android

Android) Activity, Intent

wasupup 2021. 8. 5. 14:49
반응형

Activity

사용자 인터페이스를 만들지만 자체 출력기능이 없음

*새로운 Activity를 만들기 위해서는 Manifest(매니페스트)에 추가해줘야함.

 

Intent 

액티비티끼리 호출하기 위해 필요한 장치

무엇을 호출해서 무슨 작업을 시킬것인지 명시.

 

Intent() //디폴트 생성자

Intent(Intent i) // 복사 생성자

Intent(Intent.ACTION_VIEW, Uri.parse("") // 가장 많이 사용하는 생성자

 

명시적 Intent

: 가장 많이 볼 수 있는 방법

: 앱의 화면전환

Intent intent = new Intent(Activity.this, Activity2.class);
startActivity(intent);

암시적 Intent

: Intent의 Action에 따라 해당하는 적합한 애플리케이션 클래스를 호출.

: 암시적 인텐트는 웹브라우저 호출, 이메일전송, 전화앱으로 이동 등이 가능.

 


참고링크1 : ( https://whatisthenext.tistory.com/64 )

참고링크1 : ( https://sharp57dev.tistory.com/18 )

 


new project name : book01_240

res>values>strings.xml의 string을 값으로 가져다 쓸 수 있다.

strings.xml

<resources>
    <string name="app_name">book</string>
    <string name="strBtn1">버튼입니다</string>
</resources>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strBtn01"
        >
    </Button>


</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
    Button button1; //변수
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button1 = (Button) findViewById(R.id.button01);

        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "버튼을 눌렀어요",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }//onCreate-end
}//class-end

new project name : book02_240

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnNate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0000"
        android:text="네이트 홈페이지 열기" />

    <Button
        android:id="@+id/btn911"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#00ff00"
        android:text="911 응급전화 걸기" />

    <Button
        android:id="@+id/btnGal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff00ff"
        android:text="갤러리 열기" />

    <Button
        android:id="@+id/btnEnd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#00ffff"
        android:text="끝내기" />

</LinearLayout>

MainActivity.java

package com.example.book02_240;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button btnNate, btn911, btnGal, btnEnd;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnNate = (Button) findViewById(R.id.btnNate);
        btn911 = (Button) findViewById(R.id.btn911);
        btnGal = (Button) findViewById(R.id.btnGal);
        btnEnd = (Button) findViewById(R.id.btnEnd);

        btnNate.setBackgroundColor(Color.GRAY);
        btn911.setBackgroundColor(Color.GREEN);
        btnGal.setBackgroundColor(Color.RED);
        btnEnd.setBackgroundColor(Color.YELLOW);

        btnNate.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                Intent mIntent = new Intent(Intent.ACTION_VIEW, Uri
                        .parse("http://m.nate.com"));
                startActivity(mIntent);

            }
        });

        btn911.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                Intent mIntent = new Intent(Intent.ACTION_VIEW, Uri
                        .parse("tel:/911"));
                startActivity(mIntent);

            }
        });

        btnGal.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                Intent mIntent = new Intent(Intent.ACTION_VIEW, Uri
                        .parse("content://media/internal/images/media"));
                startActivity(mIntent);

            }
        });

        btnEnd.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                finish();

            }
        });
    }//onCreate() end
}//class end

반응형
Comments