我的问题是如何在单击按钮时禁用按钮,并在单击另一个按钮后再次启用它。 例如,当我点击按钮1时有4个按钮,它将被禁用,当我点击按钮2时,按钮2将被禁用,按钮1将再次启用。
目前我正在使用此代码,但一旦点击它就无法启用按钮。
Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (v == btn1) {
if (v.isEnabled()) {
v.setEnabled(false);
}
// my code
} else if (v == btn2) {
if (v.isEnabled()) {
v.setEnabled(false);
}
// my code
} else if (v == btn3) {
if (v.isEnabled()) {
v.setEnabled(false);
}
// my code
} else if (v == btn4) {
if (v.isEnabled()) {
v.setEnabled(false);
}
// my code
}
答案 0 :(得分:1)
使用btn2.setEnabled(true);
Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (v == btn1) {
if (v.isEnabled()) {
v.setEnabled(false);
btn2.setEnabled(true);
btn3.setEnabled(true);
btn4.setEnabled(true);
}
// my code
} else if (v == btn2) {
if (v.isEnabled()) {
v.setEnabled(false);
btn1.setEnabled(true);
btn3.setEnabled(true);
btn4.setEnabled(true);
}
// my code
} else if (v == btn3) {
if (v.isEnabled()) {
v.setEnabled(false);
btn1.setEnabled(true);
btn2.setEnabled(true);
btn4.setEnabled(true);
}
// my code
} else if (v == btn4) {
if (v.isEnabled()) {
v.setEnabled(false);
btn1.setEnabled(true);
btn3.setEnabled(true);
btn4.setEnabled(true);
}
// my code
}
答案 1 :(得分:1)
对于其他按钮,只需setEnabled(true),如下所示:
Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (v == btn1) {
if (v.isEnabled()) {
v.setEnabled(false);
btn2.setEnabled(true);
btn3.setEnabled(true);
btn4.setEnabled(true);
}
// my code
} else if (v == btn2) {
if (v.isEnabled()) {
v.setEnabled(false);
btn1.setEnabled(true);
btn3.setEnabled(true);
btn4.setEnabled(true);
}
// my code
} else if (v == btn3) {
if (v.isEnabled()) {
v.setEnabled(false);
btn1.setEnabled(true);
btn2.setEnabled(true);
btn4.setEnabled(true);
}
// my code
} else if (v == btn4) {
if (v.isEnabled()) {
v.setEnabled(false);
btn1.setEnabled(true);
btn3.setEnabled(true);
btn4.setEnabled(true);
}
// my code
}
答案 2 :(得分:1)
试试这个
// Create a global button variable
Button flagButton = null;
Button.OnClickListener btnOnClickListner = new Button.OnClickListener() {
@Override
public void onClick(View v) {
if(flagButton == null)
flagButton = (Button)v;
else
flagButton.setEnabled(true);
v.setEnabled(false);
flagButton = (Button)v;
if (v == btn1)
// my code
else if (v == btn2)
// my code
else if (v == btn3)
// my code
else if (v == btn4)
// my code
}
}