ในการเริ่มต้นกิจกรรมที่ควรส่งคืนผลลัพธ์เป็นกิจกรรมการโทรคุณควรทำสิ่งต่างๆดังต่อไปนี้ คุณควรส่งรหัสคำขอตามที่แสดงด้านล่างเพื่อระบุว่าคุณได้รับผลลัพธ์จากกิจกรรมที่คุณเริ่ม
startActivityForResult(new Intent(“YourFullyQualifiedClassName”),requestCode);
ในกิจกรรมคุณสามารถใช้setData()
เพื่อส่งคืนผลลัพธ์
Intent data = new Intent();
String text = "Result to be returned...."
//---set the data to pass back---
data.setData(Uri.parse(text));
setResult(RESULT_OK, data);
//---close the activity---
finish();
ดังนั้นอีกครั้งในกิจกรรมแรกที่คุณเขียนโค้ดด้านล่างใน onActivityResult ()
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
String returnedResult = data.getData().toString();
// OR
// String returnedResult = data.getDataString();
}
}
}
แก้ไขตามความคิดเห็นของคุณ:
หากคุณต้องการส่งคืนสามสตริงให้ทำตามสิ่งนี้โดยใช้คู่คีย์ / ค่าด้วยความตั้งใจแทนการใช้ Uri
Intent data = new Intent();
data.putExtra("streetkey","streetname");
data.putExtra("citykey","cityname");
data.putExtra("homekey","homename");
setResult(RESULT_OK,data);
finish();
รับไว้ในonActivityResultดังนี้:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
String street = data.getStringExtra("streetkey");
String city = data.getStringExtra("citykey");
String home = data.getStringExtra("homekey");
}
}
}