[英]Call to method onSearchRequested() in the same activity that handles search requests causes duplication in activity stack
[英]onSearchRequested() result in same activity
我已經在我的應用程序中通過列表實現了onSearchRequested()搜索方法,並且效果很好,我創建了2個活動,一個用於列表數據,另一個用於該形式的搜索結果
公共類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);
}
因此它有可能使搜索結果出現在活動1中的回調活動中,並且清單文件中是否應該進行任何更改,也無法尋求幫助
您需要像這樣重寫onNewIntent:
@Override
protected void onNewIntent(Intent intent) {
makeMeAnAdapter(intent);
}
然后將搜索元數據包含在activity2中,如下所示:
<meta-data android:name="android.app.searchable" android:resource="@xml/search" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.