在ListView中搜索会导致空对象引用

时间:2016-01-04 15:04:37

标签: android listview

我正在浏览这些API指南:https://developer.android.com/guide/topics/search/search-dialog.html 并愿意在我的简单ListView中实现搜索。我只是不知道为什么我得到这个:

  

尝试在空对象引用上调用虚方法'void> android.widget.SearchView.setOnQueryTextListener(android.widget.SearchView $ OnQuer> yTextListener)'

这是我的代码。请帮我解决这个问题:

MenuItem ourSearchItem = menu.findItem(R.id.menu_item_search);
SearchView searchView = (SearchView) ourSearchItem.getActionView();

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        adapter.getFilter().filter(newText);
        return false;
    }
});

1 个答案:

答案 0 :(得分:0)

在菜单项XML中设置actionViewClass属性,如

<?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/search"
          android:title="@string/search_title"
          android:icon="@drawable/ic_search"
          android:showAsAction="collapseActionView|ifRoom"
          app:actionViewClass="android.widget.SearchView" />
</menu>

或者如果您使用支持库:

 app:actionViewClass="android.support.v7.widget.SearchView"