2014-03-05 111 views
-1

我有以下的情況下startActivityForResult令人討厭的行爲

當按下一個按鈕,我startActivityForResult,它會打開與對話的主題另一個活動,並顯示線性佈局的列表,當我按線性佈局我上完活動的的onClick監聽

但onActivityResult方法從來沒有所謂的

所以任何人都可以在此幫助?

編輯:添加代碼

活動打開的對話框活動

Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
intent.putExtra(DATA_LIST_KEY, myDataList); 
startActivityForResult(intent, 5000); 

的onClick監聽

public void onClick(View v) { 

    setResult(5000); 
    SecondActivity.this.finish();       
} 

EDIT 2

我發現以下

1-我使用TabActivity爲所有我的活動添加選項卡,現在onActivityResult在TabActivity上觸發,但不在其內部的子活動中觸發

任何人都可以幫助嗎?

+0

您的代碼在哪裏? – GrIsHu

回答

0

你的活動中刪除android:launchMode="singleInstance"android:noHistory我必須弄明白這個問題的原因,我用TabActivity和使用活動標籤,並呼籲onActivityResult但在父母的活動,舉辦所有其他活動,我已經通過在父母活動中處理它來解決它

2

請確保您在單擊該項目後在第二個活動中調用setResult(intent)方法。

編輯1: 我想你以錯誤的方式設置結果。它應該是具有Result_OK或Reuslt_Cancel的意圖。

編輯2 - 舉例:

Intent output = new Intent(); 
output.putExtra(key, val); 
setResult(RESULT_OK, output) 
+0

是的,我用我用來打開活動 –

+0

相同的代碼來設置結果,所以請發佈代碼片段的代碼。 – MSaudi

+0

我已將代碼添加到原始帖子 –

0

提示檢查:

  1. 你以前完成呼叫的setResult ()。

  2. 對於如果存在

+0

是的我打電話給調用完setResult之前,我沒有添加android:launchMode =「singleInstance」或android:noHistory到我的清單文件 –

+0

然後,你的代碼看起來不錯,我實際上會調用SecondActivity .this.setResult(RESULT_OK),這個5000將作爲onActivityResult中的請求代碼返回 – marcinj

+0

爲什麼你需要'SecondActivity.this.'? – marcinj