我正在浏览这些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;
}
});
答案 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"