gpt4 book ai didi

android - 来自 SherlockFragment (ClassCastException) 的 ActionBar 菜单膨胀错误

转载 作者:太空狗 更新时间:2023-10-29 16:07:28 24 4
gpt4 key购买 nike

我正在尝试使用 this post 的解决方案,以便在我的 ActionBar 中有一个 Spinner。我首先使用的是 ActionBar 的 NAVIGATION_MODE_LIST,但我不希望微调器用于导航槽 View (我将为此设置选项卡)。所以我创建了 2 个 xml:

模式_spinner.xml

<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

选项.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_mode"
android:actionLayout="@layout/mode_spinner"
android:showAsAction="ifRoom"/>
</menu>

然后,尝试从我的 fragment (SherlockFragment) 中膨胀它

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.options, menu);
Spinner spinner = (Spinner) menu.findItem(R.id.menu_mode);
spinner.setAdapter(mSpinnerAdapter);
super.onCreateOptionsMenu(menu, inflater);
}

在运行时,我得到了这个错误:

java.lang.ClassCastException: com.actionbarsherlock.internal.view.menu.MenuItemWrapper cannot be cast to android.widget.Spinner

有什么想法吗?

最佳答案

您需要对从 findItem() 返回的结果项调用 getActionView() 以访问该 View 。从那里你可以操纵它。

您可能还想考虑简单地使用带有专门可检查项目的子菜单。

关于android - 来自 SherlockFragment (ClassCastException) 的 ActionBar 菜单膨胀错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691413/

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