您好,我想知道如何让我的搜索 Activity 将结果返回到启动它的 Activity 。
我目前实现了一个搜索对话框(这意味着单击手机上的搜索按钮后,搜索 Activity 就会启动)。
这是我的搜索 Activity 代码,它是一个 ListView 。
公共(public)类 ItemFinder 扩展 ListActivity {
public static final int REQUEST_CODE = 1; // get it?
Vector<String> upcCodes;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
upcCodes = new Vector<String>();
ListView lv = (ListView) findViewById(android.R.id.list);
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
String upc = upcCodes.elementAt(position);
setResult(RESULT_OK);
}
});
// Get the intent, verify the action and get the query
Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
ProgressDialog dialog = ProgressDialog.show(ItemFinder.this, "Searching",
"Searching. Please wait...", true);
performSearch(query);
dialog.hide();
dialog.dismiss();
}
}
public void performSearch(String query){
String result = new SmartShopClient().SearchItems(query);
List<String> dataList = new ArrayList<String>();
String _parsedResult[] = result.split("\\n");
for( int i = 0; i<_parsedResult.length; i++){
String _splitData[] = _parsedResult[i].split("\\|");
String itemName = _splitData[0];
String itemUPC = _splitData[1];
dataList.add(itemName);
upcCodes.add(itemUPC);
}
ArrayAdapter<String> arr = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList);
this.setListAdapter(arr);
}
}
所以搜索工作一切正常,但我希望当我单击 ListView 中的结果之一时,它将数据返回到主 Activity 并包含一些数据,例如单击搜索的名称结果。
谢谢。
最佳答案
您想要做的是使用 startActivityForResult
启动搜索。查看解释here .
这样,您就可以将搜索结果传递回启动它的 Activity。
关于android - 搜索 Activity 是否返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7176862/