删除 ActionBar 上的 action_settings

Delete action_settings on ActionBar

我在尝试删除设置图标并添加另一个新图标时遇到问题。

我试过的是(没有成功):

1.-删除main.xml

中的项目

2-更改 OnPrepareOprionMenu

@Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // if Navigation drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        menu.findItem(R.id.action_home).setVisible(!drawerOpen);
        return super.onPrepareOptionsMenu(menu);
    }

3.-更改OnOptionsItemSelected

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    //  title/icon
    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    // Handle action bar actions click
    switch (item.getItemId()) {
    case R.id.action_home:
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

4.-我的menu_home.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/action_home"
        android:icon="@drawable/ic_home"
        android:title="Home"
        android:alphabeticShortcut="r"
        android:orderInCategory="200"
        android:showAsAction="ifRoom" />
</menu>

5.-我也试过这个,在我的片段上(我想显示这个主页图标的地方)

 @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.menu_home,menu );
        inflater.inflate(R.menu.main,menu);
        menu.findItem(R.id.action_settings).setVisible(false);

    }

5.- main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>

    <item
        android:id="@+id/action_refresh"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_refresh"/>

      <item
        android:id="@+id/action_rate"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_rateapp"/>

</menu>

我知道这并不难,但我不明白为什么它没有从我的应用程序中消失。

谢谢。

嗯...我所做的是更改 main.xmlmenu_main.xml

我的main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_home"
    android:icon="@drawable/ic_home"
    android:title="Home"
    android:alphabeticShortcut="r"
    android:orderInCategory="200"
    android:showAsAction="ifRoom" />

我看到我有一个 menu_main.xml 然后我删除了所有并添加:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_home"
    android:icon="@drawable/ic_home"
    android:title="Home"
    android:alphabeticShortcut="r"
    android:orderInCategory="200"
    android:showAsAction="ifRoom" />

而且我不得不修改 MainActivity.java 上的一些内容。

这对我有用...

之前有人问过这个问题,据说要在支持操作栏调用上重建菜单

super.supportInvalidateOptionsMenu();

然后调用 onCreateOptionsMenu

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

            boolean isSDCardReady = MyCheckStorage
                    .isExternalStorageWritable();

            // The snapshot or thumbnail create option is not available
            // unless the sdcard isready
            MenuItem menuItemSnapshot = menu.findItem(R.id.action_snapshot);
            if (isSDCardReady) {
                menuItemSnapshot.setEnabled(true);
                menuItemSnapshot.setVisible(true);
            } else {
                menuItemSnapshot.setEnabled(false);
                menuItemSnapshot.setVisible(false);
            }
...

return super.onCreateOptionsMenu(menu);
}