실습하기
Activity 결과 수신에 대한 기능 구현
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if(result.getResultCode() == RESULT_OK){
Intent intent = result.getData();
Log.d("FirstActivity", intent.getStringExtra("msg"));
}
}
}
);
registerForActivityResult : 인텐트 응답 콜백 등록 실시
result.getResultCode() : 결과코드를 반환하는 메소드
result.getData() : 응답 온 Intent에 저장된 데이터를 반환하는 메소드
버튼 기능 구현하기
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(FirstActivity.this,ThirdActivity.class);
launcher.launch(intent);
}
});
ThirdActivity
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class ThirdActivity extends AppCompatActivity {
Button btn;
EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
edt = findViewById(R.id.edtMsg);
btn = findViewById(R.id.btnThird);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String msg = edt.getText().toString();
Intent intent = new Intent();
intent.putExtra("msg",msg);
setResult(RESULT_OK,intent);
finish();
}
});
}
}
실행 화면
콘솔에 출력화면