android– 如何访问菜单项?

android– 如何访问菜单项?,第1张

概述所以我试图从ActionBar中取出我的菜单项并将它们设置为一些变量以便稍后使用.下面是一些基本测试代码,它尝试在创建选项菜单期间设置变量.当它启动它时崩溃并出现错误:02-1812:10:08.109:E/AndroidRuntime(30931):FATALEXCEPTION:main02-1812:10:08.109:E/AndroidRuntime(

所以我试图从Actionbar中取出我的菜单项并将它们设置为一些变量以便稍后使用.下面是一些基本测试代码,它尝试在创建选项菜单期间设置变量.当它启动它时崩溃并出现错误:

02-18 12:10:08.109: E/AndroIDRuntime(30931): FATAL EXCEPTION: main02-18 12:10:08.109: E/AndroIDRuntime(30931): Process: com.example.slIDer2, PID: 3093102-18 12:10:08.109: E/AndroIDRuntime(30931): java.lang.indexoutofboundsexception: InvalID index 2131230720, size is 102-18 12:10:08.109: E/AndroIDRuntime(30931):    at java.util.ArrayList.throwindexoutofboundsexception(ArrayList.java:255)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at java.util.ArrayList.get(ArrayList.java:308)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.androID.internal.vIEw.menu.MenuBuilder.getItem(MenuBuilder.java:656)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.example.slIDer2.MainActivity.onCreateOptionsMenu(MainActivity.java:22)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.app.Activity.onCreatePanelMenu(Activity.java:2538)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.androID.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:436)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.androID.internal.policy.impl.PhoneWindow.doInvalIDatePanelMenu(PhoneWindow.java:800)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.androID.internal.policy.impl.PhoneWindow.run(PhoneWindow.java:221)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.vIEw.Choreographer$CallbackRecord.run(Choreographer.java:761)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.vIEw.Choreographer.doCallbacks(Choreographer.java:574)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.vIEw.Choreographer.doFrame(Choreographer.java:543)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.vIEw.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:747)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.os.Handler.handleCallback(Handler.java:733)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.os.Handler.dispatchMessage(Handler.java:95)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.os.Looper.loop(Looper.java:136)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at androID.app.ActivityThread.main(ActivityThread.java:5017)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at java.lang.reflect.Method.invokeNative(Native Method)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at java.lang.reflect.Method.invoke(Method.java:515)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:595)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at de.robv.androID.xposed.XposedBrIDge.main(XposedBrIDge.java:126)02-18 12:10:08.109: E/AndroIDRuntime(30931):    at dalvik.system.NativeStart.main(Native Method)

MainActivity.java

public class MainActivity extends Activity {    private MenuItem mRefresh;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);    }    @OverrIDe    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main_menu, menu);        mRefresh = menu.getItem(R.ID.refresh);        return super.onCreateOptionsMenu(menu);    }}

main_menu.xml

<menu xmlns:androID="http://schemas.androID.com/apk/res/androID" >    <item        androID:ID="@+ID/refresh"        androID:icon="@drawable/ic_action_refresh"        androID:showAsAction="ifRoom"        androID:title="@string/refresh"/></menu>

关于我在这里做错了什么的想法?我需要能够 *** 作菜单项,而不仅仅是在它们被点击时.

解决方法:

MenuItem.getItem(index)取菜单项的索引而不是菜单项的ID,所以使用菜单项ID为的MenuItem.findItem:

 mRefresh = menu.findItem(R.ID.refresh); //item ID  OR mRefresh = menu.getItem(0); //item index
总结

以上是内存溢出为你收集整理的android – 如何访问菜单项?全部内容,希望文章能够帮你解决android – 如何访问菜单项?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1101099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存