1. 기본 Activity 호출시
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
2. Activity 로 데이터 전송
(1) 보내는 쪽
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("INTENT_KEY_INT", 5);
intent.putExtra("INTENT_KEY_STRING", "Intent String");
startActivity(intent);
(2) 받는 쪽
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent = getIntent();
int value = intent.getIntExtra("INTENT_KEY_INT", 0);
String str = intent.getStringExtra("INTENT_KEY_STRING");
}
}
3. Activity <-> Activity 데이터 상호 전송
(1) 보내고 받는 방법
// (1)
ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
//result.getResultCode()를 통하여 결과값 확인
if(result.getResultCode() == RESULT_OK) {
//ToDo
String str = result.getData().getStringExtra("RESULT");
Log.d("ActivityResult", str);
}
if(result.getResultCode() == RESULT_CANCELED){
//ToDo
}
}
);
// (2)
ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if(result.getResultCode() == RESULT_OK) {
//ToDo
String str = result.getData().getStringExtra("RESULT");
Log.d("ActivityResult", str);
}
if(result.getResultCode() == RESULT_CANCELED){
//ToDo
}
}
});
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("INTENT_KEY_INT", 5);
intent.putExtra("INTENT_KEY_STRING", "Intent String");
mStartForResult.launch(intent);
(2) Intent 데이터 받아서 처리 후 Result 전송
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent = getIntent();
int value = intent.getIntExtra("INTENT_KEY_INT", 0);
String str = intent.getStringExtra("INTENT_KEY_STRING");
Intent intent = new Intent();
intent.putExtra("RESULT", "성공");
setResult(RESULT_OK, intent);
}
}'Android(Java)' 카테고리의 다른 글
| [Java] 암시적 Intent 공유하기 (1) | 2024.01.11 |
|---|---|
| [Java] 암시적 Intent 기본 사용방법 (0) | 2024.01.11 |
| [Java] abstract Callback (추상클래스 콜백) (1) | 2024.01.05 |
| [Java] interface Callback (0) | 2024.01.05 |
| [Java] Delegate 패턴 사용법 (2) | 2024.01.05 |