peut pointer quiconque dans la direction de tutoriels qui montrent comment créer un menu d'options avec des contrôles clicakble comme dans l'image ci-dessous:Android - Boutons cochables sur le menu Options
alt text http://img291.imageshack.us/img291/1221/deviceit.png
J'ai essayé comme suit:
/** 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;
}
Mais cela ne fonctionne pas ne me donne que le texte sur les boutons du menu Options
EDIT: J'ai ajouté la méthode onPrepareOptionsMenu suivante:
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;
}
Cependant je reçois le même résultat juste le texte et pas de lumière de contrôle comme dans l'image ci-dessus
La vieille question, mais juste une note à quiconque cherche - en utilisant menu.findItem() utilise l'ID de l'élément plutôt qu'un numéro d'index. ie menu.findItem (R.id.menu_item) – enyciaa