【问题标题】:Attaching OnQueryTextListener to SearchView gives NullPointerException将 OnQueryTextListener 附加到 SearchView 会产生 NullPointerException
【发布时间】:2014-03-06 01:05:02
【问题描述】:

我的活动中有一个搜索视图。当我尝试附加 OnQueryTextListener 时,它给了我一个 NullPointerException。它的Java代码如下

    @Override
public  boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.allpurpose, menu);
    MenuItem        searchItem  = menu.findItem(R.id.apmenu_search);
    SearchView      searchView  = (SearchView) MenuItemCompat.getActionView(searchItem);
    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
        public boolean onQueryTextChange(String newText) {return true;}
        public boolean onQueryTextSubmit(String query) {return true;}
    };
   searchView.setOnQueryTextListener(queryTextListener);
   return   super.onCreateOptionsMenu(menu);
}

XML 代码:

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
    android:id="@+id/apmenu_search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@string/srch"
    android:showAsAction="ifRoom"
    android:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

【问题讨论】:

标签: java android android-menu searchview


【解决方案1】:

所有“兼容”项都用于提供向后兼容性。所以在这种情况下MenuItemCompat 支持 7 以上版本的操作栏项目(而不是正常的 11)。在 java 代码中,如果有MenuItemCompat,那么在 xml 中也必须有一个“Compat”项。现在,“app”命名空间支持这些“Compat”项。所以像这样改变xml:

<?xml version="1.0" encoding="utf-8"?>
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >
        <item
            android:id="@+id/apmenu_search"
            android:icon="@android:drawable/ic_menu_search"
            android:title="@string/srch"
            app:showAsAction="ifRoom"
            app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 2018-03-17
    • 1970-01-01
    • 2014-11-11
    • 2015-06-24
    • 2013-05-27
    相关资源
    最近更新 更多