【发布时间】:2020-02-13 10:46:52
【问题描述】:
我在xml中添加了android X
public boolean onCreateOptionsMenu(final Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.notebook_menu, menu);
MenuItem searchMenuItem = menu.findItem(R.id.notebook_search);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) searchMenuItem.getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
}
从菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/notebook_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
android:icon="@drawable/tab_notebook_search"
app:showAsAction="always|collapseActionView"
android:title="@string/search"/>
</menu>
错误
java.lang.NullPointerException: 尝试调用虚方法 'void android.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)' 在空对象引用上
【问题讨论】:
-
请提供minimal reproducible example。请务必显示完整的错误消息。查看stackoverflow.com/questions/23353173/… 获取一些提示。
-
menu.xml 文件 android:actionViewClass="androidx.appcompat.widget.SearchView" Java class searchView = (SearchView) searchMenuItem.getActionView();//getting null here Error java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)”
-
您阅读我提供的链接了吗?
标签: android android-layout android-fragments