我的应用程序有一个 MainActivity,其中包括一个搜索按钮(在许多其他主要组件中)。单击搜索按钮后,将调用 OnSearchRequested() 并 SearchableActivity 执行搜索并返回结果。现在我有了结果,我希望 ListView 出现在 MainActivity 中,而不是 Searchable Activity 中。
这可能吗?
我的应用程序有一个 MainActivity,其中包括一个搜索按钮(在许多其他主要组件中)。单击搜索按钮后,将调用 OnSearchRequested() 并 SearchableActivity 执行搜索并返回结果。现在我有了结果,我希望 ListView 出现在 MainActivity 中,而不是 Searchable Activity 中。
这可能吗?
在 SearchActivity 返回查询之后,在您进行搜索之前,您可以创建一个意图并将查询添加为额外的,如下所示:
Intent intent = new Intent(this,MainActivity.class);
intent.putExtra("SEARCH_QUERY", query);
startActivity(intent);
然后在您的 MainActivity 中,您可以检查该额外内容:
getIntent().getStringExtra("SEARCH_QUERY")
如果它不为空或不为空,请进行搜索并将结果交给您的 listView 适配器,否则执行您的 MainActivity 正在执行的其他操作。
假设您在每个列表中都有相同类型的数据,我建议您创建一个列表片段,您的主要活动和搜索活动都会使用。
使用 asynctask 而不是新活动可能会更好。如果必须使用活动,可以使用 startActivityForResult