出于修道者的目的,我需要使用一个单选按钮作为切换按钮。不幸的是,我只能保持检查或取消选中但不能重新检查。我已经尝试过我能想到的每一种组合,但却无法让它发挥作用。 toggle()将无法工作,因为它只会检查未选中的单选按钮。我尝试过isChecker()和setChecked()的组合,但它不起作用。这就是我目前所拥有的:
pi.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.e("Pistate before",Boolean.toString(pistate));
if(pistate=true)
pi.setChecked(false);
if(pistate=false)
pi.setChecked(true);
if(pi.isChecked())
pistate=true;
if(!pi.isChecked())
pistate=false;
Log.e("Pistate after",Boolean.toString(pistate));
}
});
一旦取消选中,就不会重新检查。之前和之后的活动读取都是假的,因为我的if()应该改变它,对吧?
答案 0 :(得分:4)
好吧,因为这是一个比较,你应该使用==
if(pistate == true)
或者,如果它是您想要的对象引用
if(object.equals(pistate))
答案 1 :(得分:4)
您无需使用单独的Boolean
来维持“州”,只需执行以下操作即可...
pi.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pi.setChecked(!pi.isChecked());
}
});
答案 2 :(得分:1)
和我说的一样好。 使用==会有所帮助。 从来没有这种方法更加复杂。 我建议:
pi.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.e("Pistate before",Boolean.toString(pistate));
pistate = !pistate;
pi.setChecked(pistate);
Log.e("Pistate after",Boolean.toString(pistate));
}
});