gpt4 book ai didi

java - 将 OnQueryTextListener 附加到 SearchView 会给出 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 03:06:57 27 4
gpt4 key购买 nike

我的 Activity 中有一个搜索 View 。当我尝试附加 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>

最佳答案

所有“Compat”项都用于提供向后兼容性。所以在这种情况下,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>

关于java - 将 OnQueryTextListener 附加到 SearchView 会给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21647744/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com