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);
}