-6

我有一個片段,我從中調用活動並完成任務後,將其配置回&回到片段屏幕。在這裏,我需要從活動中獲取數據,我嘗試使用onActivityResult處理它,但是得到的結果代碼始終爲-1。onActivityResult重新調用結果代碼總是-1

片段代碼:

//call to next screen, below code is written inside alert dialog 

Intent intentAddProfile = new Intent(getActivity(), UpdateMyProfilectivity.class); 
startActivityForResult(intentAddProfile, Constants.REQUEST_CODE_UPDATE_PROFILE); 

接下來是

//onactivityresult handling, inside onactivityresult() method 

if (requestCode == Constants.REQUEST_CODE_UPDATE_PROFILE) { 
      if (resultCode == Constants.RESPONSE_CODE_UPDATE_PROFILE) { 
       Log.v("Result Code :", "" + resultCode); //getting always -1 
      } 
     } 

然後

//Next screen code after finishing task 
Intent backIntent = new Intent(); 
backIntent.putExtra("dummy", "ok"); 
setResult(Constants.RESPONSE_CODE_UPDATE_PROFILE, backIntent); 
Log.v("RLC U : ", "" + Constants.RESPONSE_CODE_UPDATE_PROFILE); //sends correct e.g. 334 
finish(); 

我想知道爲什麼它沒有返回實際結果代碼是如334.

+0

對不起,你的時間。在代碼中排除錯誤,但現在修復它。 – VVB

+0

看起來Borad先生在下面給出了一個很好的答案,請回復他。 – halfer

回答

0

因爲你的Constants.RESPONSE_CODE_UPDATE_PROFILE是-1;

+0

已經提到,它的334 – VVB

0

將您的片段中的onActivityResult方法移至包含片段的Activity。它應該這樣工作。

1

覺得像你這樣從活動主叫startActivityForResult爲B和C.有三個活動A,B和C現在

Intent intentAddProfile = new Intent(getActivity(), B.class); 
startActivityForResult(intentAddProfile, 2); 

而且

Intent intentAddProfile = new Intent(getActivity(), C.class); 
startActivityForResult(intentAddProfile, 3); 

在活動B

setResult(requestCode, intent); // requestCode = 2; 

活動C

setResult(requestCode, intent); // requestCode = 3; 

最後對活性產生onactivityresult()

if (requestCode == 2) { 
// comming back from activity B. 
} 
else if (requestCode == 3) 
{ 
// comming back from activity C. 
} 

requestCode昂立幫助您確定您來自這裏面活動。

你唯一要做的就是把意圖。

在活動B

Intent backIntent = new Intent(); 
backIntent.putExtra("value", 334); 
setResult(2, backIntent); 

和活動的一個

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     if (requestCode == 2) { 
      final int value= intent.getIntExtra("value", 0); 
     } 
    } 
相關問題