2014-01-14 48 views
3

我定義我SearchView這樣如何添加額外的數據到android.widget.SearchView?

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater) 
    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE); 
    SearchableInfo info = searchManager.getSearchableInfo(getActivity().getComponentName()); 

    SearchView searchView = (SearchView) menu.findItem(R.id.action_menu_search).getActionView(); 
    searchView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 
    searchView.setSearchableInfo(info); 
} 

,一切工作正常。當我提交查詢時,新的意圖被解僱,我將其捕獲在我的MainActivity中。但我不知道搜索查詢的來源。

我可以看到mAppSearchData變量可以幫助我在android.widget.SearchView,但它由於某種原因無法訪問 - 代碼searchView.setAppSearchData(bundle);不能編譯。

是否有其他方式來傳遞傳遞附加數據來檢測搜索來自哪裏?

+1

我使用支持庫中的SearchView:代碼「searchView.setAppSearchData(bundle);」編譯和工作。 –

回答

0

您可以通過附加查詢來發送帶查詢的活動名稱。假設你的查詢是'hello',你可以將它附加到'mainactivity %% hello'之類的東西上。在您的搜索活動中,您可以解析查詢以檢索活動名稱。考慮這個解決方案有一個解決方法。那裏可能有更好的東西。

+0

我不認爲在提交之後和啓動搜索意圖之前有辦法修改查詢。我只能重寫'onQueryTextSubmit'並實現自己的意圖啓動。 –

相關問題