我已经在我的应用程序中通过列表实现了搜索方法onSearchRequested(),它运行良好,我为列表数据创建了2个活动,为搜索结果创建了另一个活动 以那种形式
public class acitvity1扩展了InterfaceBase {
@Override
ListAdapter makeMeAnAdapter(Intent intent) {
return(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
}
}
以及包含搜索结果的活动2
public abstract class Acitvity2 extends InterfaceBase {
@Override
ListAdapter makeMeAnAdapter(Intent intent) {
ListAdapter adapter=null;
if (intent.getAction().equals(Intent.ACTION_SEARCH)) {
String query=intent.getStringExtra(SearchManager.QUERY);
List<String> results=searchItems(query);
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,results);
setTitle("Search : "+query);
}
return(adapter);
}
private List<String> searchItems(String query) {
SearchSuggestionProvider
.getBridge(this)
.saveRecentQuery(query, null);
List<String> results=new ArrayList<String>();
for (String item : items) {
if (item.indexOf(query)>-1) {
results.add(item);
}
}
return(results);
}
因此有可能使搜索结果出现在activity1中的回调活动中,并且清单文件中是否应该进行任何更改 请求帮助
答案 0 :(得分:0)
你需要像这样覆盖onNewIntent:
@Override
protected void onNewIntent(Intent intent) {
makeMeAnAdapter(intent);
}
然后在activity2中包含搜索元数据,例如:
<meta-data android:name="android.app.searchable" android:resource="@xml/search" />