Để bắt đầu một hoạt động sẽ trả lại kết quả cho hoạt động gọi điện, bạn nên làm một cái gì đó như dưới đây. Bạn nên chuyển mã yêu cầu như hình bên dưới để xác định rằng bạn đã nhận được kết quả từ hoạt động bạn đã bắt đầu.
startActivityForResult(new Intent(“YourFullyQualifiedClassName”),requestCode);
Trong hoạt động bạn có thể sử dụng setData()
để trả về kết quả.
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();
Vì vậy, một lần nữa trong hoạt động đầu tiên bạn viết mã dưới đây vào 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();
}
}
}
EDIT dựa trên nhận xét của bạn:
Nếu bạn muốn trả về ba chuỗi, thì hãy làm theo điều này bằng cách sử dụng các cặp khóa / giá trị với mục đích thay vì sử dụng Uri.
Intent data = new Intent();
data.putExtra("streetkey","streetname");
data.putExtra("citykey","cityname");
data.putExtra("homekey","homename");
setResult(RESULT_OK,data);
finish();
Đưa họ vào onActivityResult như dưới đây:
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");
}
}
}