【发布时间】:2021-06-06 01:15:12
【问题描述】:
在菜单膨胀期间遇到 onCreateOptionsMenu 方法错误。 我不明白他为什么提到这个领域 - 似乎我带来了一切并且在androidx下正确地做到了。
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setQueryHint("Поиск последний новостей ...");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if (query.length() > 2) {
onLoadingSwipeRefresh(query);
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
searchMenuItem.getIcon().setVisible(false, false);
return true;
}
menu_main.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"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activities.MainActivity">
<item
android:id="@+id/action_search"
android:orderInCategory="100"
android:title="Search"
android:icon="@drawable/ic_search"
app:showAsAction="always"
app:actionProviderClass="androidx.appcompat.widget.SearchView"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar"
/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="Settings"
app:showAsAction="never" />
<item
android:id="@+id/action_weather"
android:orderInCategory="100"
android:title="Weather"
android:icon="@drawable/ic_weather"
app:showAsAction="always" />
</menu>
如何解决这个问题?先感谢您! 附言下面列出了带有错误描述的日志:
Process: com.sv.newsapp, PID: 16248
java.lang.ClassCastException: androidx.appcompat.widget.SearchView cannot be cast to androidx.core.view.ActionProvider
at androidx.appcompat.view.SupportMenuInflater$MenuState.readItem(SupportMenuInflater.java:425)
at androidx.appcompat.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:179)
at androidx.appcompat.view.SupportMenuInflater.inflate(SupportMenuInflater.java:129)
at com.sv.newsapp.activities.MainActivity.onCreateOptionsMenu(MainActivity.java:150)
【问题讨论】:
-
你是否将
AndroidX添加到Gradle?
标签: java android firebase kotlin casting