我无法切换onoff的键值。为什么键值在每个按钮(声音)单击时都没有改变?默认的onoff值为0,单击按钮时onoff值应更改为1,但是不能。为什么?
private var mp: MediaPlayer? =null
var sound_onoff:Int=0
onCreat{...
mp= MediaPlayer.create(this, R.raw.key_tone)
val pref = applicationContext.getSharedPreferences("MyPref", 0)
val editor = pref.edit()
sound_onoff = pref.getInt("onoff", 0)
sound.setOnClickListener{
when(sound_onoff){
1->{sound.setText("SOUND ON")
mp?.setVolume(1F,1F)
mp!!.start()
editor.putInt("onoff", 0)
editor.apply()}
0->{sound.setText("SOUND OFF")
mp?.setVolume(0F,0F)
mp!!.start()
editor.putInt("onoff", 1)
editor.apply()}
}
}
我建议您使用布尔值而不是整数。
以及为什么您的代码不起作用。因为您仅将sound_onoff = pref.getInt("onoff", 0)
放在onCreate中,所以在类创建时它仅调用一次。
需要检查时需要调用sound_onoff = pref.getInt("onoff", 0)
。
尝试一下:
sound.setOnClickListener{
sound_onoff = pref.getInt("onoff", 0)
when(sound_onoff){
1->{sound.setText("SOUND ON")
mp?.setVolume(1F,1F)
mp!!.start()
editor.putInt("onoff", 0)
editor.apply()}
0->{sound.setText("SOUND OFF")
mp?.setVolume(0F,0F)
mp!!.start()
editor.putInt("onoff", 1)
editor.apply()}
}
}
希望获得帮助!