gpt4 book ai didi

android - 无法使用支持库获取 ActionBar MenuItem 的操作 View

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:57 26 4
gpt4 key购买 nike

我最近从 ActionBarSherlock 切换了到 Android Support Library ActionBar ,现在我在操作栏中微调器的操作 View 上得到一个空值。

这是 docs 建议的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_menu, menu);
MenuItem spinnerItem = menu.findItem(R.id.menuNavigateType);
View view = MenuItemCompat.getActionView(spinnerItem);// !! view is NULL !!
...
}

这是R.menu.home_menu:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto">
...
<item
android:id="@+id/menuNavigateType"
myapp:showAsAction="always"
myapp:actionViewClass="android.support.v7.widget.Spinner" />
...
</menu>

如何获取我的操作 View ?

谢谢。

最佳答案

不确定,但请尝试以下操作,而不是 MenuItemCompat.getActionView(),使用:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_menu, menu);
MenuItem spinnerItem = menu.findItem(R.id.menuNavigateType);

View view = spinnerItem.getActionView();
// ...
if(view instanceof Spinner) {
final Spinner spinner = (Spinner) view;
// create your adapter
// ...
// set your adapter
spinner.setAdapter(adapter);
}
}

同样适用于您的项目,而不是 android.support.v7.widget.Spinner:

<item
android:id="@+id/menuNavigateType"
myapp:showAsAction="always"
myapp:actionViewClass="android.widget.Spinner" >

我在这里看到了这个解决方案:Android ActionBar (ActionBarCompat) Spinner Dropdown list ? .
如果对您有帮助,请告诉我。

关于android - 无法使用支持库获取 ActionBar MenuItem 的操作 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20721165/

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