标签: android-optionsmenu

片段中的Android选项菜单

我试图从一组片段添加一个项目到选项菜单.

我创建了一个新MenuFragment类,并为我希望包含菜单项的片段扩展了这个.这是代码:

public class MenuFragment extends Fragment {

    MenuItem fav;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        fav = menu.add("add");
        fav.setIcon(R.drawable.btn_star_big_off);
    }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,onCreateOptionsMenu似乎没有运行.

android android-fragments android-optionsmenu

378
推荐指数
11
解决办法
26万
查看次数

如何在Android片段中添加操作栏选项菜单

我想在Android Fragments中有一个选项菜单.ActionBar选项菜单未显示在我的片段中.

这里是我的代码,我有两个onCreateOptionsMenu()onOptionSelected()功能.我的代码没有显示任何错误.但是没有显示选项菜单.

package org.reachout;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import org.general.R;

public class ViewMessageFragment extends Fragment {

    /* (non-Javadoc)
     * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        if (container == null) {
            // We have different layouts, and in one of them this
            // fragment's containing frame doesn't exist.  The fragment
            // may still be created …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-optionsmenu android-actionbar

61
推荐指数
2
解决办法
11万
查看次数

在某些片段中隐藏MenuItem

我使用菜单抽屉有更多的Fragments.在某些Fragments我有菜单项REFRESH但在一些片段我想隐藏这个菜单项(我不想显示菜单,但我不想隐藏ActionBar).

我尝试添加覆盖onCreateOptionsMenu()Fragment我不想显示此菜单项但我无法让它工作.我尝试了许多方式在代码中看到注释行.有什么问题在哪里?当我onPrepareOptionsMenu()在MainActivity中调用时激活菜单抽屉时,最后这个菜单项会隐藏,但是当我进入时我需要这样做Fragment.

Fragment 我想要隐藏菜单项REFRESH:

 public class FindPeopleFragment extends Fragment {
    public FindPeopleFragment(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_find_people, container, false);
        //setHasOptionsMenu(false);
        return rootView;
    }

    private Menu menu=null;
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
    {
        inflater.inflate(R.menu.main, menu);
        this.menu=menu;
        menu.findItem(R.id.refresh).setVisible(false);
        getActivity().invalidateOptionsMenu();
        //setHasOptionsMenu(false);
        super.onCreateOptionsMenu(menu,inflater);
    }
}
Run Code Online (Sandbox Code Playgroud)

MainActivity在哪里定义MENU DRAWER:

 //Slide menu item click listener
private class SlideMenuClickListener implements
        ListView.OnItemClickListener {
    @Override …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-optionsmenu

53
推荐指数
7
解决办法
6万
查看次数

如何更改操作栏中的选项菜单图标?

如何更改选项菜单的索引图标?

在此输入图像描述

我的意思是图标(3).

这是我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options, menu);

    return true;
}
Run Code Online (Sandbox Code Playgroud)

这是XML文件:

<item android:id="@+id/Bugreport"
    android:title="@string/option_bugreport" />

<item android:id="@+id/Info"
    android:title="@string/option_info" />

<item android:id="@+id/About"
    android:title="@string/option_about" />
Run Code Online (Sandbox Code Playgroud)

android android-menu android-icons android-optionsmenu android-actionbar

49
推荐指数
5
解决办法
9万
查看次数

onCreateOptionsMenu()调用super

我正在使用OptionsMenu创建应用程序.我发现几个例子吧,但是大家都在用不同的地方调用super.onCreateOptionMenu()onCreateOptionsMenu()方法.

不同方式列表:

@Override // without super
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mymenu, menu);
  return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mymenu, menu);
  return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mymenu, menu);
  return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

我该怎么用?

android android-optionsmenu

35
推荐指数
1
解决办法
9018
查看次数

Android - 正确使用invalidateOptionsMenu()

我一直在搜索invalidateOptionsMenu(),我知道它的作用.但我想不出这个方法可能有用的任何现实生活中的例子.

我的意思是,例如,假设我们想要为我们添加一个新MenuItemActionBar,我们可以简单地从菜单中获取onCreateOptionsMenu(Menu menu)并在任何按钮的操作中使用它.

现在我真正的问题是,遵循唯一的使用方式invalidateOptionsMenu()

bool _OtherMenu;
protected override void OnCreate (Bundle bundle)
{
    _OtherMenu = false;
    base.OnCreate (bundle);
    SetContentView (Resource.Layout.Main);
    Button button = FindViewById<Button> (Resource.Id.myButton);
    button.Click += delegate
    {
        if(_OtherMenu)
            _OtherMenu = false;
        else
            _OtherMenu = true;

        InvalidateOptionsMenu ();
    };
}

public override bool OnCreateOptionsMenu (IMenu menu)
{
    var inflater = this.SupportMenuInflater;
    if(_OtherMenu)
        inflater.Inflate (Resource.Menu.another_menu, menu);
    else
        inflater.Inflate (Resource.Menu.main_activity_menu, menu);

    return base.OnCreateOptionsMenu (menu);
}
Run Code Online (Sandbox Code Playgroud)

单击按钮,将出现另一个菜单.再次单击该按钮,将出现上一个菜单.

PS对不起C#语法.

android android-menu android-optionsmenu android-actionbar xamarin

34
推荐指数
3
解决办法
4万
查看次数

如何在选项卡Activity中的片段中使用onCreateOptionsMenu?(Sherlock ActionBar)

我在我的选项卡Activity中覆盖了以下方法,它可以正常工作,但我希望每个片段都有特定的选项菜单.当我把它放在我的片段中并按下菜单按钮时,没有任何反应.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.activity_calc, menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-optionsmenu actionbarsherlock

32
推荐指数
1
解决办法
2万
查看次数

Android:java.lang.IllegalArgumentException:无效的有效内容项类型

有些用户告诉我有关的异常:

java.lang.IllegalArgumentException: Invalid payload item type
at android.util.EventLog.writeEvent(Native Method)
at android.app.Activity.onMenuItemSelected(Activity.java:2452)
at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:846)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:956)
at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:534)
at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
at android.view.View$PerformClick.run(View.java:11934)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

但我无法理解什么是错的.有没有人对这个问题有一些想法?我试图重复那个例外,但我没有做到这一点.这是代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {  
   MenuInflater inflater = getMenuInflater();
   inflater.inflate(R.menu.app_menu, menu);
   return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {  
   switch (item.getItemId()) {
   case R.id.about:
      startActivity(new Intent(this, AboutActivity.class));
      return true;
   case R.id.settings:
      startActivity(new Intent(this, SettingsActivity.class)); …
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception android-menu android-optionsmenu

29
推荐指数
4
解决办法
8158
查看次数

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

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

android menu android-optionsmenu

25
推荐指数
3
解决办法
2万
查看次数

使用兼容性库在ICS中未显示选项菜单

我无法在使用android-support-v4.jar库的项目中的ICS片段中显示选项菜单.我正在使用Galaxy Nexus手机进行测试.

我们没有使用操作栏,并且需要该应用程序兼容2.2+.我们在ICS中的活动中没有看到任何选项菜单(FragmentActivity不支持onCreateOptionsMenu)

我可以在之前版本的Android中使用菜单 - 我有所有正确的框架来启用选项菜单(如下所示)但ICS中没有显示任何内容.单步执行代码时,不会调用onCreateOptionsMenu.有人可以建议修复吗?

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class SuperFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.display_options_actions, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.menu_sign_in:
                break;
            case R.id.menu_sign_out:
                break;
        }
        return true;
    }
    // ...
}
Run Code Online (Sandbox Code Playgroud)

清单文件中的目标操作系统版本:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
Run Code Online (Sandbox Code Playgroud)

android android-optionsmenu android-4.0-ice-cream-sandwich android-support-library

22
推荐指数
2
解决办法
2万
查看次数