SharedPreferences 无法按预期保存键值
SharedPreferences could not save key-value as intended
我无法切换开关键值。为什么键值在每次按钮(声音)点击时都没有改变?
默认的onoff值是0,on button点击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()}
}
}
我建议你使用 Boolean 而不是 Int。
以及为什么您的代码不起作用。因为你把 sound_onoff = pref.getInt("onoff", 0)
放在 onCreate 中所以它只在 class 创建时调用一次。
需要查看的时候调用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()}
}
}
希望对您有所帮助!
我无法切换开关键值。为什么键值在每次按钮(声音)点击时都没有改变? 默认的onoff值是0,on button点击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()}
}
}
我建议你使用 Boolean 而不是 Int。
以及为什么您的代码不起作用。因为你把 sound_onoff = pref.getInt("onoff", 0)
放在 onCreate 中所以它只在 class 创建时调用一次。
需要查看的时候调用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()}
}
}
希望对您有所帮助!