และฉันมีปัญหาที่ฉันต้องการทำเช่นนี้ส่งข้อมูลชนิดในปุ่มนุ่มที่ฉันได้ทำและ softKey ซึ่งเป็นค่าเริ่มต้นในทุกอุปกรณ์ Android ดังนั้นฉันได้ทำสิ่งนี้ก่อนอื่นฉันได้ทำIntent
ในของฉัน "A" Activity
:
Intent intent = new Intent();
intent.setClass(context, _AddNewEmployee.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityForResult(intent, 6969);
setResult(60);
จากนั้นในกิจกรรมที่สองของฉันฉันได้ประกาศฟิลด์ใน "B" ของฉันActivity
:
private static int resultCode = 40;
จากนั้นหลังจากที่ฉันทำคำขอของฉันสำเร็จหรือเมื่อใดก็ตามที่ฉันต้องการบอกกิจกรรม "A" ว่างานนี้เสร็จเรียบร้อยแล้วให้เปลี่ยนค่าของ resultCode เป็นแบบเดียวกับที่ฉันพูดใน "A" Activity
ซึ่งในกรณีของฉันคือ "60" และ แล้ว:
private void backToSearchActivityAndRequest() {
Intent data = new Intent();
data.putExtra("PhoneNumber", employeePhoneNumber);
setResult(resultCode, data);
finish();
}
@Override
public void onBackPressed() {
backToSearchActivityAndRequest();
}
PS: อย่าลืมลบออกSuper
จากวิธี onBackPressed ถ้าคุณต้องการให้มันทำงานอย่างถูกต้อง
ฉันควรเรียกonActivityResult
วิธีนี้ในกิจกรรม "A" ด้วย:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 6969 && resultCode == 60) {
if (data != null) {
user_mobile = data.getStringExtra("PhoneNumber");
numberTextField.setText(user_mobile);
getEmployeeByNumber();
}
}
}
แค่นี้ก็หวังว่ามันจะช่วยคุณได้ #HappyCoding;
startActivityForResult