Кнопка переключения Android MenuItem

В моем приложении для Android я хочу, чтобы в меню можно было переключать настройки, как в приложении Dialer для громкой связи и отключения звука. Вы можете увидеть картинку ниже:

http://www.isaacwaller.com/images/acall.png

Вы видите, как параметры «Динамик», «Отключение звука» и «Удержание» представляют собой кнопки-переключатели - вы можете нажать их еще раз, и они переключатся на зеленый цвет. Они могут делать это по-своему, но я подозреваю, что это вариант (я пробовал установить атрибут Checkable).


person Isaac Waller    schedule 20.02.2009    source источник


Ответы (2)


Похоже, этот пункт меню реализован как настраиваемый вид.

В исходном коде Android вы можете посмотреть com.android.phone.InCallMenuView.java, чтобы узнать, как это реализовано.

Не похоже, что он является частью общедоступного API, но выглядит довольно самодостаточным. Если у вашего проекта есть совместимая лицензия, вы можете скопировать ее в свой проект и использовать и изменять по своему усмотрению.

person Brian Pellin    schedule 21.02.2009

Вы также можете сделать что-то вроде приведенного ниже фрагмента, изначально полученного с anddev.org

public boolean onPrepareOptionsMenu(final Menu menu) {       
      if(super.mMapView.isTraffic()) 
           menu.findItem(MENU_TRAFFIC_ID).setIcon(R.drawable.traffic_off_48); 
      else 
           menu.findItem(MENU_TRAFFIC_ID).setIcon(R.drawable.traffic_on_48); 

      return super.onPrepareOptionsMenu(menu); 
 }
person Quintin Robinson    schedule 21.02.2009