我从#34;空活动"创建了应用程序Android Studio 1.4中的模板和添加的选项菜单。
资源:
<?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/action_foo"
android:icon="@android:drawable/ic_media_previous"
android:orderInCategory="100"
android:title="@string/word_foo"
app:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_bar"
android:icon="@android:drawable/ic_media_next"
android:orderInCategory="101"
android:title="@string/word_bar"
app:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_baz"
android:icon="@android:drawable/ic_media_pause"
android:orderInCategory="102"
android:title="@string/word_baz"
app:showAsAction="never"/>
</menu>
方法:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
更改后,定位应用程序崩溃。有什么问题?
Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.support.v7.widget.Toolbar$SavedState
我在这里引用了答案class cast exception on orientation change (Android) 而且我认为这不是我的情况:我的布局绝对是空的。根本没有包含id的小部件。
答案 0 :(得分:1)
我发现了问题。
我不是以英语为母语的人,我忘记了,来自bar
,foo
,bar
的{{1}}也具有共同的价值。在标识为baz
的菜单项后,我创建了action_foo
。它与SDK布局中的一些id冲突,正如我所假设的,对应于ActionBar。
因此解决方案是将action_bar
中的ID更改为其他内容。