2010-11-13 5 views
0

Je veux être en mesure d'appuyer sur le bouton de menu sur le téléphone Android et obtenir le menu qui permettra à l'utilisateur d'activer/désactiver le son. Je veux des images différentes pour le statut marche/arrêt.Android onCreateOptionsMenu changer l'icône pour activer/désactiver

Je sais comment créer des menus; Cependant, j'ai du mal à changer le bouton de menu d'une image à l'autre. Est-ce que quelqu'un a compris cela?

Merci

Ci-dessous mon code:

@Override public boolean onCreateOptionsMenu (menu du menu) {

MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.layout.menu, menu); 

    return true; 

}

public boolean onOptionsItemSelected (point MenuItem) {

// Handle item selection 

    switch (item.getItemId()) { 
    case R.id.EnableDisableSounds: 

    if(musicflag == true) 
    { 
    HighScores db = new HighScores(this); 
    db.open(); 
    if(this.soundflag == true) 
     db.insertSystem("1", "off", "on"); 
    else 
    db.insertSystem("1", "off", "off"); 

    db.close(); 

    mp.pause(); 
     musicflag = false; 
    } 
    else 
    { 
    HighScores db = new HighScores(this); 
    db.open(); 
    if(this.soundflag == true) 
     db.insertSystem("1", "on", "on"); 
    else 
    db.insertSystem("1", "on", "off"); 

    db.close(); 

    mp.start(); 
    musicflag = true; 
    } 
    break; 

    case R.id.EnableDisableMusic : 
    if(soundflag == true) { 

    HighScores db = new HighScores(this); 
    db.open(); 

    if(this.musicflag == true) 
     db.insertSystem("1", "on", "off"); 
    else 
    db.insertSystem("1", "off", "off"); 

    db.close(); 
     soundflag = false; 
    } 
    else if(soundflag == false) { 
    HighScores db = new HighScores(this); 
    db.open(); 

    if(this.musicflag == true) 
     db.insertSystem("1", "on", "on"); 
    else 
    db.insertSystem("1", "off", "on"); 

    db.close(); 
     soundflag = true; 
    } 

    break; 
    case R.id.DeleteScores: 
    HighScores db = new HighScores(this); 
    db.open(); 
    db.DeleteDBTable(); 
    db.close(); 
    break; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 

    return true; 

}

+0

@M. Perkins: "J'ai du mal à changer le bouton de menu d'une image à l'autre" - et la difficulté est ... quoi? – CommonsWare

Répondre

0

Utilisez onPrepareOptionsMenu et il manipuler le paramètre du menu. Edit: cela fonctionne exactement comme le onCreate/onPrepare pour les boîtes de dialogue. Dans onCreate vous initialisez, et dans onPrepare vous mettez à jour l'interface utilisateur, par exemple en cochant une case en fonction d'une valeur booléenne dans la base de données.

Questions connexes