Articles of menuitem

MenuItem的选中状态未通过其图标正确显示

我有这样定义的MenuItem: 和btn_star.xml定义: 但是,当我使用此选项创建选项菜单时,即使MenuItem的isChecked()属性为true,图标也不会以其选中状态显示。 我正在使用ActionBarSherlock控件,但是,如果我只是创建一个普通的选项菜单并调用setChecked(true) ,我会得到相同的结果。 无论项目的检查状态如何,它仍然显示btn_star_off drawable。 正确调用onOptionsItemSelected()方法,我可以成功更改checked属性: @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.isCheckable()) { item.setChecked(!item.isChecked()); } return super.onOptionsItemSelected(item); } 在此处设置断点显示isChecked属性正在更改,但图标本身未更新以反映正确的状态。 这里有什么我想念的吗? 我做错了吗? 我无法弄清楚为什么这不能正常工作。

将一个项目对齐ActionBar左侧

我想将一个项目对齐ActionBar的左侧,将其他项目对齐到右侧,如下所示: 我的菜单xml中有5个项目。 main.xml中 我们该怎么做? 抱歉我的英语非常差劲。

如何更改操作栏上菜单项的位置

我正在开发一个应用程序,我必须在操作栏上添加自定义布局。 添加自定义布局已完成,但是当我在操作栏上添加菜单项时,我的自定义布局会将其从操作栏右侧的位置更改为操作栏的中心。 下面是我到目前为止所获得的图像。 我在动作栏上想要这样的东西。 自定义布局(黄色按钮)位于操作栏的最右侧,菜单项位于中间。 添加我的代码以使用本机android操作栏实现此自定义布局: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); actionBar = getActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayUseLogoEnabled(false); actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowCustomEnabled(true); cView = getLayoutInflater().inflate(R.layout.header, null); actionBar.setCustomView(cView); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.websearch_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: […]

Android MenuItem自定义布局

当我点击操作栏中的操作按钮时,会出现一个PopupMenu 。 我希望我的PopupMenu中的MenuItem具有如下自定义布局: 布局/ menu_item_layout.xml 这是PopUpMenu的xml: 菜单/ pop_menu.xml 我的活动代码如下: public void showPopup(int idR){ View menuItemView = findViewById(idR); PopupMenu popup = new PopupMenu(this, menuItemView); MenuInflater inflate = popup.getMenuInflater(); inflate.inflate(R.menu.pop_menu, popup.getMenu()); MenuItem menuItem= popup.getMenu().findItem(R.id.popupItem); menuItem.setActionView(R.layout.menu_item_layout); popup.show(); } 但是当出现popupmenu时,item为空。 我使用setActionview()方法错了吗? 谢谢。

为菜单项设置布局时,不调用OnMenuItemSelected

我有一个从main_menu.xml膨胀的菜单: 这是活动中的代码: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { MyMessageHandler.debug(“menu item selected”); switch(item.getItemId()){ case R.id.act_sync: sync(); return true; } return super.onOptionsItemSelected(item); } 但是当我触摸菜单项时,不会调用onOptionsItemSelected。 当我删除菜单项的actionLayout属性时,它工作正常。 我怎样才能解决这个问题? 谢谢。

如何更改Android菜单项的自定义字体?

我有以下Android Java和XML代码。 我想更改我的应用程序的菜单项的字体。 我只知道我们可以使用setTypeface更改TextView的字体,但无论如何都无法find菜单项。 JAVA代码 – : @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_refresh1: Toast.makeText(this, “Item1 Selected”, Toast.LENGTH_SHORT) .show(); break; case R.id.action_refresh2: Toast.makeText(this, “Item2 Selected”, Toast.LENGTH_SHORT) .show(); break; default: break; } } XML代码 – : 我想更改两个菜单项的字体,但不知道如何为菜单项集成settypface。

从代码中选中一个菜单项

我有一个Android应用程序,其中一个活动中包含以下菜单项(涉及处理名称和mac编号列表): 当应用程序状态发生变化时,我希望能够使用以下代码预先检查上次使用的排序选项列表中的哪个项目: ((MenuItem)findViewById(R.id.sort_by_name)).setChecked(true); 问题是这个特定的行给了我一个运行时exception。 有没有人知道为什么? 查看日志会发现运行时exception是由空指针exception触发的。 通过这种方式更改代码: MenuItem mi = (MenuItem)findViewById(R.id.sort_by_name); mi.setChecked(true); 很明显,exception发生在seconds语句中,即MenuItem mi为null。 那么为什么第一个语句无法将指针指向正确的MenuItem?

IllegalArgumentException无效的有效内容项types – 使用ActionBarCompat

Logcat: http ://crashes.to/s/72388b92dd7 我使用动作栏compat,因此我无法覆盖’onMenuItemSelected’,因为它是最终方法。 似乎只发生在某些人身上? 我已经在’onOptionsItemSelected’上返回true,但它没有帮助,在此期间提交了一份错误报告,希望有人会看到这个。 @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case R.id.menu_add_user: Intent intent = new Intent(this, Add_User.class); startActivity(intent); return true; case R.id.menu_about: buildAboutDialog(); return true; case R.id.menu_chat: return true; case R.id.menu_feedback: buildFeedbackDialog(“a”); return true; case R.id.menu_show_images: if(appPrefs.getBoolean(“showImages”, false) == true){ appPrefs.saveBoolean(“showImages”, false); MenuShowImages.setTitle(“Hide […]

菜单项的自定义视图

我需要动态菜单项,一个用户定义颜色的圆圈,如下所示: 触摸此菜单项将打开一个颜色选择器。 现在,我有一个示例ColorPickerIcon,它扩展了View public class ColorPickerIcon extends View { private Paint mPaint; private int mColor; private final int mRadius = 20; public ColorPickerIcon(Context context) { super(context); mColor = Color.BLACK; mPaint = createPaint(); } public ColorPickerIcon(Context context, AttributeSet attrs) { super(context, attrs); mColor = Color.BLACK; mPaint = createPaint(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); […]

如何设置MenuItem的图标颜色?

我定义了一个具有ShareActionProvider的菜单项并共享白色图标,如下所示: 但是当我启动应用程序时,我会得到一个不同的黑色共享图标。 如何将共享图标设置为白色? 这是我的结果