2010-11-18 42 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()); 

看到函数调用?