2010-11-18 67 views
3

中獲取到主要活動。活動B是SearcActivity(SearchManager)。活動B是ListActivity,所以無論結果如何,結果都顯示在列表中。一旦用戶點擊列表,我想要將該列表選擇的項目返回給ActivityA。使用案例: 活動A是主要活動。將搜索管理器活動的結果從android

我做了什麼? 我可以使用「onSearchRequested()」在按鈕上調用SearchActivity。在ActivityB中,我通過「setListAdapter(adapter)」顯示searchresult。使用「onListItemClick」,我可以得到用戶選擇的列表中的選項。

現在,我試圖通過下面的代碼

Intent intent = new Intent(); 
Bundle bundle = new Bundle(); 
bundle.putString("item", l.getItemAtPosition(position).toString()); 
intent.putExtras(bundle); 
setResult(RESULT_OK, getIntent()); 
finish(); 

而且在ActivityA發送結果回ActivityA,我試圖讀取結果在「onActivityResult」。

Bundle bundle = data.getExtras(); 
String strItem = bundle.getString("item"); 
AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
alertDialog.setTitle("Item Selected"); 
alertDialog.setMessage("Item = " + strItem); 
alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int which) { 
    return; 
} 
}); 
alertDialog.show(); 

問題: 我注意到,一旦活性A被恢復, 「onActivityResult」 完全不叫。因此我沒有看到任何對話。另外,我無法驗證SearchActivity是否實際向ActivityA發送任何內容。

所以朋友們,我如何捕獲ActivityB發送的數據。

回答

1

難道你可能想寫:中

setResult(RESULT_OK, intent); 

代替

setResult(RESULT_OK, getIntent()); 

看到函數調用?