การสั่งเปิดหน้า registerActivity
Intent intent = new Intent(MainActivity.this, TargetActivity.class);
startActivity(intent);
ปิด Activity ในฝั่ง TargetActivity เอง
this.finish();
การส่งค่าถึง TargetAcvitiy ด้วยการ putExtra
Intent intent = new Intent(MainActivity.this, twoActivity.class);
intent.putExtra("key", value);
startActivity(intent);
การรับค่าจาก value ใน twoActivity
Intent intent = this.getIntent();
String value = intent.getStringExtra("key");
จะได้ค่า value ที่เก็บเป็น String ไปใช้งานต่อไป
--------------------------------------------------------------------------
การเปิด Activity ที่เปิดใหม่ +(รอการตอบกลับ)
Intent intent = new Intent(MainActivity.this, twoActivity.class);
startActivity(intent);
startActivityForResult(intent, REQUEST_CODE);
การส่งค่า Value กลับไปยัง Activity ก่อนหน้าที่เรียกตัวมันขึ้นมา
Intent intent = new Intent();
intent.putExtra("key", "value");
twoActivity.this.setResult(MainActivity.REQUEST_OK, intent);
twoActivity.this.finish();
การรอรับค่าใน Activity เดิมหลังจาก twoActivity ถูกปิดลง
สามารถรับค่าจาก twoActivity ที่ปิดลงได้ที่ method : onActivityResult (ใน sender activity)
มีค่า parameter ที่ส่งกลับมาให้3ค่าคือ requestCode , resultCode , intent
requestCode
มาจาก startActivityForResult ตอนกดปุ่มที่สั่งให้เปิด Activity
startActivityForResult(intent, MainActivity.REQUEST_CODE);
resultCode
มาจากการ setResult ก่อนปิด Activity
setResult(MainActivity.RESULT_OK, intent);
intent
สำหรับนำมา getStringExtra จาก key ที่ต้องการ
Example
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
String return_key = intent.getStringExtra("key");
if (resultCode == RESULT_OK && requestCode == MainActivity.REQUEST_CODE){
// coding
}
}
intent.putExtra("key", "value");
twoActivity.this.setResult(MainActivity.REQUEST_OK, intent);
twoActivity.this.finish();
การรอรับค่าใน Activity เดิมหลังจาก twoActivity ถูกปิดลง
สามารถรับค่าจาก twoActivity ที่ปิดลงได้ที่ method : onActivityResult (ใน sender activity)
มีค่า parameter ที่ส่งกลับมาให้3ค่าคือ requestCode , resultCode , intent
requestCode
มาจาก startActivityForResult ตอนกดปุ่มที่สั่งให้เปิด Activity
startActivityForResult(intent, MainActivity.REQUEST_CODE);
resultCode
มาจากการ setResult ก่อนปิด Activity
setResult(MainActivity.RESULT_OK, intent);
intent
สำหรับนำมา getStringExtra จาก key ที่ต้องการ
Example
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
String return_key = intent.getStringExtra("key");
if (resultCode == RESULT_OK && requestCode == MainActivity.REQUEST_CODE){
// coding
}
}