2014-10-10 88 views
0

我使用搜索小工具,像這樣的內部,從Activity延伸的活動的工作搜索實現:ActionBarActivity與搜索查看

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.search_results, menu); 

    SearchManager searchManager = 
      (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = 
      (SearchView) menu.findItem(R.id.action_search).getActionView(); 

    if(null!=searchManager) { 
     searchView.setSearchableInfo(
       searchManager.getSearchableInfo(getComponentName())); 
    } 
    return true; 
} 

當改變活性,延長ActionBarActivity,我得到這個空指針:

10-10 15:51:49.044: E/AndroidRuntime(19406): java.lang.NullPointerException 
10-10 15:51:49.044: E/AndroidRuntime(19406): at com.example.myapp.SearchResultsActivity.onCreateOptionsMenu(SearchResultsActivity.java:114) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at android.app.Activity.onCreatePanelMenu(Activity.java:2546) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:224) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:232) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:146) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:199) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onCreatePanelMenu(ActionBarActivityDelegateICS.java:293) 
10-10 15:51:49.044: E/AndroidRuntime(19406): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:436) 

我確實有其他ActionBarActivities在我的應用程序中完美工作(雖然不是用搜索小部件),而且我做了一個沒有結果的乾淨項目。爲什麼在這種情況下我得到這個空指針?

回答

1

對於ActionBarActivity,您需要使用MenuItemCompat.getActionProvider()以及android.support.v7.widget.SearchView(不是框架SearchView)按照Action Bar Action View guide

+0

我已經完成了所有這一切,事情仍然不會顯示,只是解散鍵盤並坐在那裏,即使從startActivity的日誌(覆蓋開始活動的搜索結果)不會顯示 – Odaym 2015-03-02 22:30:42

+0

非常感謝 - 拯救了我的一天! ** ActionBarActivity **需要* android.support.v7.widget.SearchView *和指南的鏈接 - 太棒了! – 2015-05-02 08:21:28

0

這裏是背後上述

你必須設置OnQueryTextListener在您從MenuItemCompat獲得搜索查看,然後自己與傳遞給你從聽衆的搜索項打開活動什麼ianhanniballake提到complete solution。經過測試和工作