2013-07-03 2 views
0

Я хочу показать кнопку сохранения при нажатии кнопки редактирования щелкнула и скрыть кнопку редактированиеКак скрыть элемент из меню и показать еще один пункт: Android

И

кнопки показать редактирования при нажатии кнопки сохранения щелкает и скрыть кнопку Сохранить ,

Мой файл меню, как показано ниже:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
    android:id="@+id/edit_button" 
    android:icon="@drawable/edit_button" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:title="@string/edit"/> 

    <item 
    android:id="@+id/save_button" 
    android:icon="@drawable/save_button" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:title="@string/save"/> 

</menu> 

Скриншот для справки:

enter image description here

+0

Попробуйте использовать фон изменений в Edit/Save как ToggleButton. –

+0

@geet изменение фона было бы плохой практикой, так как вам нужно будет спросить, какой фон отображается в 'onOptionsItemSelected()' для того, чтобы узнать, какое действие нужно выполнить 'save' или' edit', я думаю, что с сохранением MenuItem и изменить MenuItem по отдельности - это лучший подход для простого обслуживания кода. – JosephChilberry

ответ

0

Я использовал ViewSwitcher для переключения между двумя различными кнопками.

0

Вы должны сделать это программно, как здесь добавить: Dynamic control of action/menu items in ActionBar, удалять: How do I hide a menu item in the actionbar?, вы можете использовать и затем звоните invalidateOptionsMenu(), чтобы обновить изменения, внесенные вами в элементах меню, у меня нет примера прямо сейчас, но я думаю, что с этим объяснением вы должны достичь того, что вы пытаетесь сделать o делаю. Другим способом может быть добавление как MenuItem в метод onCreateOptionsMenu (или непосредственно через интерфейс XML), а затем в методе onPrepareOptionsMenu скрыть кнопку редактирования и показать кнопку сохранения с обновлением метода setVisible() с помощью метода, упомянутого выше, извините за мой английский, все еще изучая его.

Смежные вопросы