Java item.getActionview()始终提供空值
我在工具栏中有一个searchView作为选项菜单 每当我试图设置Java item.getActionview()始终提供空值,java,android,searchview,Java,Android,Searchview,我在工具栏中有一个searchView作为选项菜单 每当我试图设置setOnQueryTextListener时,它都会给我一个NullPointerException: @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.menu, menu); MenuIt
setOnQueryTextListener
时,它都会给我一个NullPointerException
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu);
MenuItem item = menu.findItem(R.id.search);
SearchView searchView = (SearchView) item.getActionView(); //searchView: null item: "Search"
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { //searchView: null
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
newText = newText.toLowerCase();
ArrayList<Note> newNotes = new ArrayList<>();
for(Note note: notes){
String name = note.getTitle().toLowerCase();
if(name.contains(newText)){
newNotes.add(note);
}
}
noteListAdapter.setFilter(newNotes);
return true;
}
});
return true;
}
你在这么做吗
SearchView search = (SearchView) findItem(R.id.search).getActionView();
请这样做
SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();
<item
android:id="@+id/search"
android:title="Search"
android:icon="@mipmap/search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"/>
SearchView搜索=(SearchView)菜单.findItem(R.id.search).getActionView();
您正在这样做
SearchView search = (SearchView) findItem(R.id.search).getActionView();
请这样做
SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();
<item
android:id="@+id/search"
android:title="Search"
android:icon="@mipmap/search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"/>
SearchView搜索=(SearchView)菜单.findItem(R.id.search).getActionView();
您有输入错误,它应该是android.support
而不是android:support
所以使用
<item
android:id="@+id/search"
android:title="Search"
android:icon="@mipmap/search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"/>
您有输入错误,它应该是
android.support
而不是android:support
所以使用
<item
android:id="@+id/search"
android:title="Search"
android:icon="@mipmap/search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"/>
我也尝试过,但它仍然会在SearchView上给我带来NullPointerException,我可以在OP code菜单中清楚地看到。findItem(R.id.search)代码>,看不到您在回答中引用的行。我也尝试过,但它仍然在SearchView上给我NullPointerException,我可以在OP code菜单中清楚地看到。findItem(R.id.search)代码>,看不到您在答案中引用的行