Android MenuItem Переключатель - PullRequest
7 голосов
/ 20 февраля 2009

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

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

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

Ответы [ 2 ]

10 голосов
/ 21 февраля 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); 
 }
6 голосов
/ 21 февраля 2009

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

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

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

...