这是我的菜单项代码
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/budget_create" android:orderInCategory="100"
android:icon="@drawable/add"
android::showAsAction="ifRoom"
android:title="New Monthly Budget"
></item>
</menu>
这是我的java代码,
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Auto-generated method stub
inflater.inflate(R.menu.budget_create_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.budget_create:
Intent i=new Intent(getActivity(),Budget_Monthly_details.class);
startActivity(i);
getActivity().overridePendingTransition(R.anim.abc_slide_in_top, R.anim.abc_slide_out_top);
break;
}
被修改
在添加了onMenuOpened()代码后,我得到了这样的图片。
我想要动作栏中的图标。
答案 0 :(得分:2)
将此代码添加到您正在给菜单充气的Activity
中..这段代码对我有用..希望它也适合您..
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
注意:此方法仅适用于Activity
.. Fragments
不支持onMenuOpened()
方法。
已编辑:
如果您希望在操作栏中显示ICON(在溢出菜单之外)..
尝试以下选项..
yourapp:showAsAction="ifRoom"
<强> e.g。强>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_add"
android:icon="@drawable/add"
android:title="My Monthly Budget"
yourapp:showAsAction="always" />
</menu>
答案 1 :(得分:1)
更改菜单布局文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_add"
android:icon="@drawable/add"
android:title="My Monthly Budget"
android:showAsAction="ifRoom" />
</menu>