你是從活動開始活動B
的結果A
public void onClick(View v) {
Intent intent = new Intent(A.this, B.class);
startActivityForResult(intent,1);
setResult(RESULT_OK);
finish();
}
所以活動A
期待結果由活動交付當活動B
完成時。
現在,要解決此問題,請在onActivityResult()
開始活動B
onActivityResult()
開始活動的方法A
。
// modified onClick method
public void onClick(View v) {
// simply set result to OK and finish activity A
setResult(RESULT_OK);
finish();
}
在啓動活動A
活動中,定義了兩個常量,也可以有一個單獨的Java類中定義的常量和在這個類是指他們。
public static final int REQUEST_CODE_FOR_A = 100;
public static final int REQUEST_CODE_FOR_B = 101;
覆蓋活動中的onActivityResult()
方法啓動活動A
和如下
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if(requestCode == REQUEST_CODE_FOR_A) {
// start activity B when activity returns RESULT_OK
Intent intent = new Intent(this, B.class);
startActivityForResult(intent, REQUEST_CODE_FOR_B);
} else if (requestCode == REQUEST_CODE_FOR_B) {
// handle the result from Activity B
}
}
}
希望這有助於啓動活動B
。
這對我來說似乎是錯誤的,除了從新活動返回的值之外,在這種情況下,您無法完成當前活動,在開始新活動時沒有除了返回值,可以完成「母親」活動。 –