我希望能够在Android中按下手机上的菜单按钮,并获得使用户能够切换开/关声音的菜单。我想要开/关状态的不同图像。
我知道如何创建菜单;但是,我很难将菜单按钮从一个图像更改为另一个图像。有没有人想到这个?
由于
以下是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
// 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 :(得分:0)
使用 onPrepareOptionsMenu 并在其中操纵Menu参数。
编辑:这与Dialogs的onCreate / onPrepare完全相同。在onCreate中,您正在初始化,在onPrepare中,您正在更新UI,例如,根据数据库中的布尔值检查复选框。