我要做的是检查SharedPreferences
音量和振动是on
还是off
。
如果它在ToggleButton
上,则应设置为on
,否则设置为off
。
我已尝试在setChecked()
上使用setSelected()
和ToggleButton
,但未改变TogggleButton
s状态。
我还尝试初始化true
和false
的变量,以确保但仍然不起作用。
似乎有什么问题?
optionsDB = getSharedPreferences(table, 0);
String volReturned = optionsDB.getString("volume", "Couldn't load data");
String vibReturned = optionsDB.getString("vibration", "Couldn't load data");
Toast.makeText(this, "Vol: "+volReturned+" Vib: "+ vibReturned, Toast.LENGTH_LONG).show();
boolean boolT = true;
boolean boolF = false;
if (volReturned=="On"){
/*tbtnvol.setChecked(true);*/
tbtnvol.setSelected(boolT);
}else{
tbtnvol.setSelected(boolF);
}
if (vibReturned=="On"){
tbtnvib.setSelected(boolT);
}else{
tbtnvib.setSelected(boolF);
}
答案 0 :(得分:5)
而不是==
使用.equals()
进行字符串比较..
试试这个,
if (volReturned.equals("On")){
/*tbtnvol.setChecked(true);*/
tbtnvol.setSelected(boolT);
}else{
tbtnvol.setSelected(boolF);
}
if (vibReturned.equals("On")){
tbtnvib.setSelected(boolT);
}else{
tbtnvib.setSelected(boolF);
}
答案 1 :(得分:4)
嗯,有两种与ToggleView相关的方法:
setChecked(布尔值)
setSelected(布尔值)
它们都是成对使用的。如果要设置选中的切换视图,请将“true”传递给两者这些方法,反之亦然。
原因是,setChecked()设置与视图对象关联的内部布尔值dataMember ,setSelected 设置与视图对象关联的UI 。
是的,这是有线的,实际上一种方法应该设置UI和数据,但这是它的实现方式,因此这就是我们必须使用这些方法的方式。