Может ли кто-нибудь указать направление любых учебных пособий, которые показывают, как создать меню опций с проверками clicakble, как на рисунке ниже:
alt text http://img291.imageshack.us/img291/1221/deviceit.png
Я пробовал следующее:
/** Menu creation and setup **/
/* Creates the menu items */
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, 1, 0, "Speaker").setCheckable(true);
menu.add(0, 2, 0, "Mute").setCheckable(true);
return result;
}
/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
if(audioManager.isSpeakerphoneOn()==false){
audioManager.setSpeakerphoneOn(true);
audioManager.setRouting(AudioManager.MODE_IN_CALL,
AudioManager.ROUTE_SPEAKER, AudioManager.ROUTE_ALL);
}else{
audioManager.setSpeakerphoneOn(false);
audioManager.setRouting(AudioManager.MODE_IN_CALL,
AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
}
return true;
case 2:
if(audioManager.isMicrophoneMute())
audioManager.setMicrophoneMute(false);
else
audioManager.setMicrophoneMute(true);
return true;
}
return false;
}
Но это не работает, он дает мне текст только на кнопках в меню параметров
EDIT: я добавил следующий метод onPrepareOptionsMenu:
public boolean onPrepareOptionsMenu(Menu menu){
boolean result = super.onPrepareOptionsMenu(menu);
if(audioManager.isSpeakerphoneOn())
menu.findItem(1).setChecked(true);
else
menu.findItem(1).setChecked(false);
if(audioManager.isMicrophoneMute())
menu.findItem(2).setChecked(true);
else
menu.findItem(2).setChecked(false);
return result;
}
Однако я получаю тот же результат только текст и контрольный свет, как на картинке выше
Если вы хотите динамически изменять состояние своего опционного меню, вам нужно использовать onPrepareMenu()
. В этом методе вы можете выполнять динамические проверки и обновлять все, что захотите.
Удачи!
документация
После некоторого копания это выглядит как пользовательское представление. Я думаю, что ваша фотография приходит из этого кода.
Это старый вопрос, но у меня была такая же проблема, и я много искал, чтобы найти такие опции, как показано выше. Я нашел учебник по http://www.codeproject.com и немного изменил его. Может быть, это не профикс-код, но он работает для меня. Ознакомьтесь с моими изменениями на моей (плохой) веб-странице на сайтах Google (я также получил небольшое учебное пособие на этом сайте):
https://sites.google.com/site/opiatefuchs/android-code-examples
Этот код является оригинальным от wjfrancis на веб-странице Project Code (много реквизитов):
http://www.codeproject.com/Articles/173121/Android-Menus-My-Way
Я только что изменил его и буду рад, если кто-нибудь получит какие-либо идеи по улучшению этого кода. Но пока это работает.