2013-02-02 61 views
1

我用這個代碼this Android API Guides建議在安卓3.0以上的搜索小工具:在resAndroid的搜索小部件菜單項

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the options menu from XML 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 

    // Get the SearchView and set the searchable configuration 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default 

    return true; 
} 

我宣佈搜索菜單項(和其他菜單項)/菜單/ menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/help" 
     android:icon="@android:drawable/ic_menu_help" 
     android:title="Help" 
     /> 
    <item android:id="@+id/menu_search" 
     android:icon="@android:drawable/ic_menu_search" 
     android:title="Search" 
     android:showAsAction="ifRoom" 
    /> 
</menu> 

根據API指南的建議,我還爲搜索結果及其res/xml/searchable.xml設置創建了一個活動。 但是當我開始我的應用程序,我收到了NullPointerExceptiononCreateOptionsMenuonCreatePanelMenu

+0

粘貼錯誤日誌 –

+0

你忘了你的'menu_search'項目需要'android:actionViewClass =「android.widget.SearchView」'。嘗試添加,看看它是否工作。如果沒有,請確保將LogCat堆棧跟蹤附加爲您的問題的編輯。 –

+0

好的,謝謝我解決了使用你的提示。 – ptia

回答

1

正如@ A - Ç說,你忘了你的menu_search項目需要android:actionViewClass="android.widget.SearchView 嘗試添加,看看它是否工作。如果沒有,請確保將LogCat堆棧跟蹤附加爲您的問題的編輯。