Articles of android optionsmenu

Android选项菜单项中没有显示图标

我创建了一个带有我自己制作的图标的选项菜单(24px x 24px),但它没有显示。 我的xml中的代码(位于res /菜单中)如下: 菜单在我的Activity.java文件中创建,如文档中所述: public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.list_menu, menu); return true; } PS项目的标题一直位于左侧,我似乎无法在文档中的任何地方find如何居中(显然是android:重力不在那里完成) 谢谢

在dispatchCreateOptionsMenu期间旋转时出现NullPointerException,堆栈跟踪不包括我的应用程序中的任何函数

我有一个应用程序,它使用ICS中操作栏上的选项卡,其中每个选项卡中都有一个片段。 在某些情况下,在我按下操作栏上选项菜单上的按钮后,然后旋转设备,我得到一个NullPointerException。 我可以使用相同的步骤可靠地重现它,但在某些情况下(如果我不按动作栏上的任何按钮)不会产生exception。 该exception似乎没有引用我的代码中的任何行,并且在方向更改后重新创建活动期间发生。 这是例外: 09-18 20:56:22.357: E/AndroidRuntime(689): FATAL EXCEPTION: main 09-18 20:56:22.357: E/AndroidRuntime(689): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andavapps.flightbot/com.andavapps.flightbot.FlightBotActivity}: java.lang.NullPointerException 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3351) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.access$700(ActivityThread.java:123) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.os.Handler.dispatchMessage(Handler.java:99) 09-18 20:56:22.357: E/AndroidRuntime(689): at […]

重新使用选项菜单代码

有没有一种方便的方法在多个活动中显示相同的选项菜单选项? 示例:在我的应用程序中,我以三种方式之一显示电视指南。 七天指南(带有7个标签的TabActivity) 所有频道’现在显示’(ListActivity) 今天所有节目都以开始时间显示(活动 – 可以轻松更改为ListActivity) 对于TabActivity的Options菜单,代码非常简单…… @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); menu.clear(); inflater.inflate(R.menu.gv_options_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.view: … … } } …但此刻我似乎需要将其复制/粘贴到我不喜欢的其他两个活动中。 如果我更改选项菜单代码,我还需要为其他两个菜单代码执行此操作。 我能想到的唯一选择是我有一个’helper’类(POJO)我可以添加一个方法并将context传递给允许使用getMenuInflator()方法和另一个我可以传递item.getItemId()结果的方法item.getItemId()进入使用switch-case进行处理。 使用相同的“选项”菜单进行多个活动的常规方法是什么?

在onCreate android之前调用onCreateOptionsMenu

我是Android的初学者,我正在开发小型Android应用程序。 在我的应用程序中,我使用的是Sherlock库。 我的应用程序包含一个主要活动和两个片段。 在我的列表片段结构看起来像 public class MyCards extends SherlockListFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); Log.i(“!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!”, “inside fragment on create”); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.i(“!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!”, “inside on activity created”); } private void displayCards(int type) { Log.i(“!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!”, “inside display cards”); } @Override public void onResume() { super.onResume(); } @Override […]

onPrepareOptionsMenu未被调用

我无法让onPrepareOptionsMenu()正常工作。 无论我尝试什么,我都无法得到它。 我的应用程序的体系结构如下:我的主Activity包含一个包含ViewPager的Fragment,而ViewPager又有四个子Fragment实例。 目前,我(已成功)使用onCreateOptionsMenu() )填充Activity中的初始选项菜单,但我希望添加一些与每个活动子Fragment相对应的额外选项。 在我的子setHasOptionsMenu(true) ,我确保在onCreate()调用setHasOptionsMenu(true) ,并在onActivityCreated()调用getSherlockActivity().supportInvalidateOptionsMenu() onActivityCreated() 。 在主Activity中, onCreateOptionsMenu()在实例supportInvalidateOptionsMenu() Fragment后调用一次,无论它们是否包含supportInvalidateOptionsMenu() 。 随后,只要替换了寻呼机中的片段,就会再次调用它。 我已经尝试将onPrepareOptionsMenu()代码向上移动到父片段和主Activity – 无济于事,这表明问题与我使用嵌套片段无关。 我也尝试将onCreateOptionsMenu()方法从主Activity移动到两个片段,在那里它不被调用。 如果有人知道这里发生了什么,我会非常感激,因为我已经被困在这两天了。 更新 – 我已经确切地解决了现在的问题,只是我仍然不确定如何解决它。 我在4.2上进行测试,似乎onCreateOptionsMenu()在Activity中的onResume()之后调用 – 如在JB 4.2上onResume之后调用的onCreateOptionsMenu中所示 。 我认为这意味着片段无法调用onPrepareOptionsMenu()因为菜单在实例化后才会存在。 那么我该如何解决这个问题呢?

android – 动态更改选项菜单,但是通过XML扩展

我需要能够在android上更改选项菜单(按下菜单按钮时显示的菜单),以便在一个案例中(例如按下按钮时),它将使用特定的菜单资源(XML文件)在菜单的/ res / menu / …中,在另一种情况下,使用不同的XML文件。 到目前为止,我只看到没有xml的例子( 这里和这里的例子),并且它们工作正常,但我希望能够在某些情况下更改整个菜单。 我试图修改我发现的解决方案,但我的试验都没有奏效。 如果可能的话,我宁愿重新创建菜单,只要它需要使用与当前菜单资源不同的菜单资源进行更新。 请帮帮我。

在android模拟器中禁用menubutton

在为ICS开发应用程序时 – 操作栏看起来会有所不同,具体取决于设备上是否存在物理menubutton。 例如,如果没有,则在操作栏中显示虚拟按钮。 是否可以通过在模拟器中以某种方式禁用它来模拟没有menubutton的设备?

如何在SherlockFragment中实现onCreateOptionsMenu方法?

我真的很难在我的Sherlock片段中设置onCreateOptionsMenu方法,因为我通常不会那么多地使用Sherlock片段。 有人能说出我要导入的内容以及实现的工作原理吗? 我有一些代码: public class MyFragment extends SherlockFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.custom_list, container, false); // SOME CODE … return rootView; } @Override public boolean onCreateOptionsMenu(Menu menu) { // ??? } }

无法访问android / drawable Icon-Resource

我正在创建一个Optionsmenu,因为我使用了Android Icon-Resource。 但我无法访问它们,我做错了什么。 我需要改变什么? 这是我的menu.xml的代码 谢谢你的帮助!

选项菜单锁定了galaxy s4

我的应用程序使用旧式选项菜单。 目前我们的目标是API 9.在Galaxy S4上,我注意到以下行为: 用户点击菜单按钮。 菜单按预期显示。 用户点击“更多”以访问溢出部分。 溢出部分按预期显示。 用户点击后退按钮返回原始选项菜单。 原始菜单按预期显示。 此时,点击选项菜单中的任何元素(包括“更多”)选项似乎没有任何效果。 然而,该系统实际上是缓存这些水龙头。 如果用户点击菜单五次(没有可见效果),则点击后退按钮隐藏菜单,然后点击菜单按钮再次显示菜单,所有缓存的点击立即进行。 每次用户点击该菜单项时,都会调用onOptionsMenuItemSelected()一次。 这只发生在S4(可能还有其他三星设备)上。 值得注意的是,我没有看到使用Galaxy Nexus运行股票4.2.2的这种行为。 这是三星自定义Android的错误,还是我在我的应用程序中做错了什么,股票Android代码更宽容?