Android MenuItem Переключатель

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

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

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

2 ответа

Решение

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

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

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

Вы также можете сделать что-то вроде приведенного ниже фрагмента кода, первоначально взятого из http://www.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); 
 }
Другие вопросы по тегам