본문 바로가기

study/앱프로그래밍

[app] Activity and Intent.txt

Activity and Intent

 

한개 이상의 Activity를 가지는 어플리케이션
애플리케이션은 여러 개의 Activity들로 이루어진다.

Intent를 이용(명시적(Explicit) / 암시적(Implicit))해서 액티비티 이동

 

하나의 task는 스택에 있는 activity들로 구성된다.
맨위에 쌓아두고 back을 누르면 이전 activity가 보인다.

 

 

<Intent>

- Implicit Intent: 암시적 intent
나는 B로 이동할거야 라는 의도를 intent가 안드로이드 시스템에 전달
안드로이드 시스템이 그것을 받고 intent를 통해 B를 생성하여 화면에 배치
- Explicit Intent : 명시적 intent
정확하게 내가 이동하려는 액티비티를 명시

 

액티비티 생성

AndroidManifest.xml 파일의 application 안에 <activity android:name = ".ResultActivity"></activity>

 

AndroidManifest.xml mainactivity에서 intent-filter때문에 mainActivity가 생성되고 실행됨

<intent-filter>
	<action android:name = "android.intent.action.MAIN"/>
	<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

- 버튼을 눌릴 때 액티비티 이동하기

button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
	@Override
	public void onClick(View v){	
		//명시적 intent를 사용하여 다른 액티비티 호출
		//현재 액티비티 -첫번째 인자, 두번째 - 호출할 인자 class
		Intent intent = new Intent(MainActivity.this, Main2Activity.class);
		startActivity(intent);
		
	}
});

 

데이터 전달


1. 전역변수 사용(공유변수 사용)
public static int data ---> int data = MainActivity.data;

2. 메세지 파씽
intent.putExtra() -> 액티비티를 호출할 때 정보를 담아서 던진다.

intent.putExtra("id", 685457);
intent.putExtra("name", "jeongmin"); 

--->  만약 다른 액티비티가 호출해서 액티비티가 생성되었다면 intent를 받을 수 있다.

Intent intent = getIntent();
int id = intent.getIntExtra("id", -1);
String name = intent.getStringExtra("name");

<mapButton>

private Button mapButton;
mapButton = findViewById(R.id.mapButton)
mapButton.setOnClickListener(new View.OnClickListener(){
	@Override
	public void onClick(View v){	
		Intent intent = new Intent(Intent.ACTION_VIEW, Uir.prase("geo:35, 125?z=10"));
		startActivity(intent);
	}
});

myintent

Intent intent = new Intent("myintent");
startActivity(intent);

AndroidManifest.xml mainactivity에서 intent-filter 수정

<intent-filter>
	<action android:name = "myintent"/>
	<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
startActivityForResult(intent);

 

'study > 앱프로그래밍' 카테고리의 다른 글

[app] thread.txt  (0) 2020.07.25
[app] android.txt  (0) 2020.07.22