这就是我在android中创建菜单项的方式。。。
MenuItem archiveItem = menu.add(Menu.CATEGORY_SYSTEM, 0, 102, R.string.archive_events);
archiveItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
archiveItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Intent intent = new Intent(MainActivity.this, PastEventsActivity.class);
startActivity(intent);
return false;
}
});
我试着通过放入以下代码行添加一个图标:
archiveItem.setIcon(getResources().getDrawable(R.drawable.ic_action_locate));
为什么指定的图标作为与相应文本相邻的菜单项图标不可见。有人能帮忙吗。感谢
在更新菜单项invalidateOptionsMenu()
后尝试调用此方法。如果您正在使用appcompat,请致电supportInvalidateOptionsMenu()
它应该能解决你的问题。
在您的代码中,尝试将MenuItem.SHOW_AS_ACTION_NEVER
更改为MenuItem.SHOW_AS_ACTION_ALWAYS
,并尝试它。有关此操作的更多详细信息,请参阅此链接
我就是这么做的。使用此代码在这个方向的文件夹下创建一个my_menutitem.xml
文件res->menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_date"
android:icon="@drawable/calender" //set ur icon here
android:orderInCategory="9999"
android:showAsAction="ifRoom" // change to always if u want to show always
android:title="@string/CAL_title"/>
</menu>
在你的活动类中使用这个Override方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_menutitem, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_date:
//do your code as u like
return true;
default:
return super.onOptionsItemSelected(item);
}
}