Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从片段更改菜单?_Java_Android_Android Fragments_Android Menu - Fatal编程技术网

Java 如何从片段更改菜单?

Java 如何从片段更改菜单?,java,android,android-fragments,android-menu,Java,Android,Android Fragments,Android Menu,在onCreateSethasOptions菜单中看到的片段中(true) 我看到菜单了。 但我不明白,如果我需要更改菜单中的某些内容,我应该在哪里以编程方式进行更改? 现在我看到一个菜单,我不确定加载了哪个资源文件,但如何在实际呈现菜单之前更改/更新菜单,例如删除一个项目 更新:我不需要从片段中执行此操作。主办活动是好的,但我不知道我应该在哪里做这件事,如何 我需要更改菜单中的某些内容,我应该在哪里以编程方式进行更改 虽然菜单不是由您的片段管理的,但我建议您选择片段调用主机活动的方法来请求更改

onCreate
SethasOptions菜单中看到的片段中(true)
我看到菜单了。
但我不明白,如果我需要更改菜单中的某些内容,我应该在哪里以编程方式进行更改?
现在我看到一个菜单,我不确定加载了哪个资源文件,但如何在实际呈现菜单之前更改/更新菜单,例如删除一个项目

更新:我不需要从片段中执行此操作。主办活动是好的,但我不知道我应该在哪里做这件事,如何

我需要更改菜单中的某些内容,我应该在哪里以编程方式进行更改


虽然菜单不是由您的片段管理的,但我建议您选择片段调用主机活动的方法来请求更改,但是更改本身应该由活动来完成,您可以覆盖它,在显示菜单之前和每次调用时都会调用它。在那里,您可以根据需要调用以隐藏或显示菜单项。

这很好,但在活动中的何处?但这是操作栏的1个菜单,对吗?我想从栏中隐藏1个菜单。菜单
onPrepareOptionsMenu()
中没有一项返回整个
菜单
,包括从
onCreateOptions菜单()添加的所有内容
-您可以使用该方法检索任意数量的菜单项。那么,为什么要覆盖
onPrepareOptions
,而不更改
onCreateOptions
?根据Javadoc中的方法:“您可以使用此方法有效地启用/禁用项或以其他方式动态修改内容。”还有一个问题。我不明白它怎么知道要加载哪个资源文件来显示菜单。这有点像“惯例”吗?