Java Android Studio-(最终)函数参数
所以我试图在没有合适的学习资源的情况下学习Java。我有一个有3个按钮的代码,我想做一个有2个参数的函数,可以改变它们的文本和bool变量,但这似乎是不可能的,因为它们需要声明为finalJava Android Studio-(最终)函数参数,java,android,variables,android-button,final,Java,Android,Variables,Android Button,Final,所以我试图在没有合适的学习资源的情况下学习Java。我有一个有3个按钮的代码,我想做一个有2个参数的函数,可以改变它们的文本和bool变量,但这似乎是不可能的,因为它们需要声明为final boolean btn1Check = false; boolean btn2Check = false; boolean btn3Check = false; public void setButton(final Button b, final boolean check) { b.setOnC
boolean btn1Check = false;
boolean btn2Check = false;
boolean btn3Check = false;
public void setButton(final Button b, final boolean check) {
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (check == true) {
b.setText("FALSE");
check = false; //HERE IS THE ERROR
}
}
});
}
如果我不声明这些最终结果,它会给我一个不同的错误。我不知道该怎么办。发生这种情况是因为无法从内部类更改变量的值。此外,更改
check
变量的值没有意义,因为它的范围以setButton
方法执行结束
如果要更改按钮
状态,则应操作按钮本身,如:
b.setChecked(false);
好的,我试着帮你解释一下你的代码:
public void setButton(final Button b, final boolean check) {
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (check == true){
b.setText("FALSE");
check = false; //HERE IS THE ERROR
}
else{
}
}
});
}
你调用b.setOnClickListener(new…)我使用了常规按钮,我得到一个错误,说它无法解析setChecked和ischecked方法你是对的。无法检查
按钮
。改用复选框
。很抱歉或者从Button派生出自己的Button类,并使用选中的字段对其进行扩展。我更新了我的答案以向您显示代码。
public void setButton(final Button b) {
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (b.isChecked()){
b.setText("FALSE");
b.setChecked(false);
}
else{
}
}
});
}
public void setButton(final Button b) {
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
b.setChecked(!b.isChecked());
b.setText(String.valueOf(b.isChecked());
}
});
}
b.setChecked(!b.isChecked());
public class CheckButton extends Button {
private boolean checked = false;
public boolean isChecked { return checked; }
public void setChecked(boolean checked) { this.checked = checked; }
}