android - 搜索 Activity 是否返回结果?

标签 android search listactivity

您好,我想知道如何让我的搜索 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/

相关文章:

android - 如何解决 "Warning: debug info can be unavailable. Please close other application using ADB: Restart ADB integration and try again"

c# - Lambda 表达式和搜索

mysql - 不精确搜索最近的时间值

algorithm - 三角面上有一个点,如何找到包含该点的三角形?

android - 如何使用SimpleAdapter在ListActivity客户项中显示来自网络的图片?

android - ListView 填充中的位图内存泄漏,android

java - Android根据 ListView 位置更改另一个 Activity 中的图像?

java - 建立 AWS 连接时 Android 中出现 ClassDefNotFound 错误

java - 如何在 Android 中使用 onListItemClick 在 listView 中打开带有联系人姓名的联系人详细信息卡?

android - 如何在Android中绘制圆的直径