gpt4 book ai didi

android - 在 oncreate 或 onresume 中获取 menuitem

转载 作者:行者123 更新时间:2023-12-02 14:34:55 27 4
gpt4 key购买 nike

我需要禁用特定功能的菜单项,并且我尝试过使用一些代码,例如:

public class ExampleActivity extends AppCompatActivity
Menu menu;

然后在这里分配

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
this.menu = menu;
return true;
}

然后使用指定的 Menu 对象来获取所需的项目

menu.findItem(R.id.avviapc).setEnabled(false);

或者:

MenuItem avviopc;

public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.right_home, menu);
avviopc = menu.getItem(R.id.avviapc);
return true;
}

avviopc.setEnabled(false);

但我总是崩溃:

java.lang.IndexOutOfBoundsException: Index: 2131296295, Size: 3
at java.util.ArrayList.get(ArrayList.java:411)
at android.support.v7.view.menu.MenuBuilder.getItem(MenuBuilder.java:741)

或者:

Attempt to invoke interface method 'android.view.MenuItem android.view.Menu.findItem(int)' on a null object reference

如果 if 中的特定值为 true,则调用:menu.findItem(R.id.avviapc).setEnabled(false); onCreate 或 onResume。

如果使用手动按钮在 Activity 开始后 2/3 秒后调用,则代码可以工作。

最佳答案

MenuItem.getItem(index) 获取菜单项的索引。如果您想使用 id 来引用该项目,请使用 MenuItem.findItem:

avviopc= menu.findItem(R.id.avviapc);//项目ID

avviopc= menu.getItem(indexOfavviopc);//项目索引

关于android - 在 oncreate 或 onresume 中获取 menuitem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501646/

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