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);
	}
}

+ Recent posts