Articles of android optionsmenu

在Android 4.1.x上取消ActionBar Overflow菜单时发出警告

这是我得到的警告: 03-02 14:38:43.980: W/InputEventReceiver(3961): Attempted to finish an input event but the input event receiver has already been disposed. 我的菜单是从常规res/menu/activity_menu.xml文件生成的。 我正在http://developer.android.com/guide/topics/ui/menus.html#options-menu上详细处理这些事件。 当我点击垂直三个点来打开溢出菜单并取消它时,我收到了警告。 似乎很少知道如何抓住它的触发器。 有任何想法吗?

按菜单按钮会导致Activity没有ActionBar崩溃

我是Android的新手,正在开发我的第一个应用程序。 我有主要的活动,里面没有ActionBar 。 而且我不想在该Activity显示任何菜单。 一切都工作正常但是当我按下设备本身的菜单按钮时,它会导致我的应用程序强行关闭而不是忽略它。 我正在为sdk> = 8开发,所以我正在使用支持库。 我尝试在代码中添加OnCreateOptionMenu() ,但没有任何内容,但结果却相同。 我的应用程序的名称是GUI,包是gui。 这是Logcat: 10-09 19:52:32.920: E/AndroidRuntime(7440): FATAL EXCEPTION: main 10-09 19:52:32.920: E/AndroidRuntime(7440): java.lang.NullPointerException 10-09 19:52:32.920: E/AndroidRuntime(7440): at android.support.v7.app.ActionBarImplICS.getThemedContext(ActionBarImplICS.java:274) 10-09 19:52:32.920: E/AndroidRuntime(7440): at android.support.v7.app.ActionBarActivityDelegate.getMenuInflater(ActionBarActivityDelegate.java:89) 10-09 19:52:32.920: E/AndroidRuntime(7440): at android.support.v7.app.ActionBarActivity.getMenuInflater(ActionBarActivity.java:71) 10-09 19:52:32.920: E/AndroidRuntime(7440): at android.app.Activity.onCreatePanelMenu(Activity.java:2554) 10-09 19:52:32.920: E/AndroidRuntime(7440): at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:224) 10-09 19:52:32.920: E/AndroidRuntime(7440): at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:224) 10-09 19:52:32.920: E/AndroidRuntime(7440): […]

Android – 正确使用invalidateOptionsMenu()

我一直在关注invalidateOptionsMenu() ,我知道它的作用。 但是我想不出这个方法可能有用的任何现实生活中的例子。 我的意思是,例如,假设我们想要为ActionBar添加一个新的MenuItem ,我们可以从onCreateOptionsMenu(Menu menu)获取菜单,并在任何按钮的操作中使用它。 现在我真正的问题是,遵循使用invalidateOptionsMenu()的唯一方法? bool _OtherMenu; protected override void OnCreate (Bundle bundle) { _OtherMenu = false; base.OnCreate (bundle); SetContentView (Resource.Layout.Main); Button button = FindViewById (Resource.Id.myButton); button.Click += delegate { if(_OtherMenu) _OtherMenu = false; else _OtherMenu = true; InvalidateOptionsMenu (); }; } public override bool OnCreateOptionsMenu (IMenu menu) { var inflater = this.SupportMenuInflater; […]

如何在android中的菜单项中添加切换按钮

我的应用程序中有选项菜单项。 要求是在菜单项中添加切换按钮。 这可能吗?

如何更改工具栏导航图标和选项菜单边距

有没有办法在Toolbar更改导航图标的左边距和操作项的右边距?

android – dynamic更改选项菜单,但通过从XML膨胀

我需要能够改变在Android上的选项菜单(按下菜单button时显示的那个),以便在一种情况下(例如按下button时),它将使用特定的菜单资源(XML文件如in / res / menu / …),另一种情况是使用不同的XML文件。 到目前为止,我只看到没有XML的例子( 这里和这里的例子),他们工作得很好,但我想能够改变一些情况下的整个菜单。 我试图修改我find的解决scheme,但我的试验没有任何工作。 如果可能的话,我宁愿重新创build菜单,只有当它需要使用与当前菜单资源不同的菜单资源进行更新时。 请帮帮我。

如何在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) { // ??? } }

选项菜单locking在星系s4上

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

openOptionsMenu()在appcompat-v7 22.1.0或更新版本中不起作用

我已经看到了几个问题的报告,其中openOptionsMenu()不适用于各种Android版本,例如: openOptionsMenu()跨Android版本 openOptionsMenu()不起作用 但我所看到的问题似乎与正在使用的appcompat-v7支持库的版本有关。 从本质上讲,对于新版本的appcompat-v7,如果您的活动扩展了Activity ,将会调用openOptionsMenu(),但如果扩展ActionBarActivity或AppCompatActivity (即使用兼容性库),将无法正常工作。 在旧版本的appcompat-v7中,它工作正常。 它是可重复的,如下所示: 在Android Studio中,导入示例“ActionBarCompat-Basic” 在屏幕上添加一个button,调用openOptionsMenu() 请注意,这可以正常工作,因为示例中使用了旧版本的库,appcompat-v7:21.0.3 改变依赖使用appcompat-v7:23.0.1,重build,当点击button时,菜单不会出现。 更改主要活动来扩展活动(即没有应用程序兼容性) – 它的工作原理 更改主要活动以扩展AppCompatActivity(即使用应用程序兼容性libarry) – 失败 经过一些testing,我发现这停止了在appcompat-v7:22.1.0中的工作,并将不再在此jar的任何新版本中工作。 在模拟器和物理设备上,以及在我testing的两个版本的Android版本5.1.1(23)和2.1(7)上,这种行为是相同的。 我已经添加了这个bug的评论: Android的问题跟踪器的错误 任何build议,意见或解决方法赞赏! 史蒂夫

隐藏PreferenceFragment的选项菜单

我有一个应用程序与几个片段。 只有一个片段有一个选项菜单。 片段可以从片段B(其扩展列表片段)开始。 所以B片段没有选项菜单,如果我从中select一个项目,片段A将启动一个选项菜单,如果返回,片段B仍然没有选项菜单。 问题是如果我从导航抽屉中select设置菜单(它扩展了preferencefragment),而我的当前窗口是片段A,设置片段将显示选项菜单从片段A.但是,如果我从导航抽屉select设置菜单,而我的当前窗口是片段B,C,D(没有选项菜单)一切正常。 片段 – 答: @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_station, menu); } 设置片段: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); sharedPreferenceSettings = new SharedPreferenceSettings(getActivity()); addPreferencesFromResource(R.xml.settings); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_settings, container, false); } 哪里有问题? 编辑: 经过几个小时的debugging,我find了解决scheme 问题是不同的fragmentManager片段事务。 […]