簡體   English   中英

onSearchRequested()結果相同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM