首页 / JAVA / java-片段内的菜单未被调用
java-片段内的菜单未被调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-片段内的菜单未被调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2241字,纯文字阅读大概需要4分钟。
内容图文
![java-片段内的菜单未被调用](/upload/InfoBanner/zyjiaocheng/690/30cf55a2a9a545fbbd27cb3bb6f78abf.jpg)
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Log.d("Does", "get called");
inflater.inflate(R.menu.menuitem, menu);
super.onCreateOptionsMenu(menu, inflater);
}
下面是我在调用的onCreateView方法
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true);
return inflater.inflate(R.layout.layout1, container, false);
}
我没有在操作栏中调用日志语句或菜单.
更新:我尝试从片段的onCreate方法调用此函数,但未显示菜单.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/section" android:title="@string/section"
android:icon="@drawable/ic_section"
android:showAsAction="always" />
<item android:id="@+id/refresh" android:title="@string/refresh"
android:icon="@drawable/ic_refresh"
android:showAsAction="always" />
<item android:id="@+id/edit_patient" android:title="@string/edit_patient"
android:icon="@drawable/ic_editpatient"
android:showAsAction="always" />
<item android:id="@+id/about" android:title="@string/about"
android:showAsAction="never" />
<item android:id="@+id/help" android:title="@string/help"
android:showAsAction="never" />
<item android:id="@+id/signout" android:title="@string/signout"
android:showAsAction="never" />
</menu>
解决方法:
您将需要从Fragment的一种生命周期方法中调用setHasOptionsMenu(true);.最好从onCreate(…)内部.
在最简单的情况下,Fragment的onCreate方法如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
另外,调用super.onCreateOptionsMenu(menu,inflater);膨胀后,自定义菜单将重置您刚刚膨胀为空菜单的菜单.
因此,请致电:
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Log.d("Does", "get called");
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menuitem, menu);
}
要么:
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Log.d("Does", "get called");
//no super call
inflater.inflate(R.menu.menuitem, menu);
}
另外,如果您正在Gingerbread设备上进行测试,则如果托管活动不包含其自己的菜单项,则可能不会显示该菜单.
内容总结
以上是互联网集市为您收集整理的java-片段内的菜单未被调用全部内容,希望文章能够帮你解决java-片段内的菜单未被调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。