개발/안드로이드

Android - Intent

웅'jk 2023. 1. 31. 00:16

Intent는 activity간의 이동에 사용하는 클래스입니다.

 

단방향 JAVA code 

MainActivity

Intent intent = new Intent("현재클래스","이동할클래스");
#ex) 현재클래스 : MainActivity.this
#    이동할클래스 : SecondActivity.class
intent.putExtra("key","data");
# putExtra 키값과 data로 이동할 액티비티로 보낼 수 있다.

startActivity(intent)
SecondActivity

String data = getIntent().getStringExtra("key");

# Intent intent = getIntent();
# String data = intent.getStringExtra("key");

 

양방향 JAVA code

# mainActivity 

ActivityResultLauncher<Intent> launcher = 
registerForActivityResult( new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>(){
	@Override
	public void onActivityResult(ActivityResult result){
		if(result.getResultCode() == 0){
			# secondactivity 로부터 다시 받아온 인텐트 처리
		}
	}
}


Intnet intent = new Intent(MainActivity.this,SecondActivity.class);

intent.putExtra("key","data");

launcher.launch(intnet);
# SecondActivity

# 암시적 intent -> 이미 메인엑티비티에서 출발했기때문에 세컨드가 종료된다면 메인으로 가개된다.
Intent intent = new Intent();
setResult(0,intent);