以编程方式将子菜单添加到菜单项 – Android
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了以编程方式将子菜单添加到菜单项 – Android,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1565字,纯文字阅读大概需要3分钟。
内容图文
我试图以编程方式将一个SubMenu添加到我的MenuItem,
我怎么做?
到目前为止这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, R.id.extra_options, Menu.NONE, "Menu1")
.setIcon(Config.chooseActionBarIcon(
MainActivity.this, "ic_actionbar_font"))
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
SubMenu themeMenu = menu.findItem(R.id.extra_options).getSubMenu();
themeMenu.clear();
themeMenu.add(0, R.id.theme_auto, Menu.NONE, "Automatic");
themeMenu.add(0, R.id.theme_day, Menu.NONE, "Default");
themeMenu.add(0, R.id.theme_night, Menu.NONE, "Night");
themeMenu.add(0, R.id.theme_batsave, Menu.NONE, "Battery Saving");
return super.onCreateOptionsMenu(menu);
}
R.id.extra_options是在“ids.xml”资源文件中定义的ID;
<item type="id" name="extra_options" />
使用getSubMenu()获取SubMenu似乎没问题,但是当我尝试将项添加到SubMenu时,我收到错误“NullPointerException”
任何人都知道代码有什么问题?
解决方法:
您可以将“menu.add”替换为“menu.addSubMenu”
我想这会对你有所帮助
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.single_product, menu);
menu.addSubMenu(Menu.NONE, R.id.extra_options, Menu.NONE,"Menu1");
SubMenu themeMenu = menu.findItem(R.id.extra_options).getSubMenu();
themeMenu.clear();
themeMenu.add(0, R.id.theme_auto, Menu.NONE, "Automatic");
themeMenu.add(0, R.id.theme_day, Menu.NONE, "Default");
themeMenu.add(0, R.id.theme_night, Menu.NONE, "Night");
themeMenu.add(0, R.id.theme_batsave, Menu.NONE, "Battery Saving");
return true;
}
内容总结
以上是互联网集市为您收集整理的以编程方式将子菜单添加到菜单项 – Android全部内容,希望文章能够帮你解决以编程方式将子菜单添加到菜单项 – Android所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。