我有3个toggleButtons,如果启用1,则其他2将被禁用。我可以通过if语句实现这一点。但是我需要为所有toggleButtons编写不同的if。
case toggleButton1:
if(toggleButton[0].isChecked())
{
toggleButton[1].setEnabled(false);
toggleButton[2].setEnabled(false);
}
else
{
toggleButton[1].setEnabled(true);
toggleButton[2].setEnabled(true);
}
break;
case R.id.toggleButton2:
if(toggleButton[1].isChecked())
{
toggleButton[0].setEnabled(false);
toggleButton[2].setEnabled(false);
}
else
{
toggleButton[0].setEnabled(true);
toggleButton[2].setEnabled(true);
}
break;
case R.id.toggleButton3:
if(toggleButton[2].isChecked())
{
toggleButton[1].setEnabled(false);
toggleButton[0].setEnabled(false);
}
else
{
toggleButton[1].setEnabled(true);
toggleButton[0].setEnabled(true);
}
break;
如何将其分组到单个方法中?
编辑:
如果我尝试下面怎么样。
private void toggle(int i) {
if(i==0) {j=1,k=2} elseif(i==1) {j=0,k=2}else{j=0,k=1}
if(toggleButton[i].isChecked())
{
toggleButton[j].setEnabled(false);
toggleButton[k].setEnabled(false);
}
else
{
toggleButton[j].setEnabled(true);
toggleButton[k].setEnabled(true);
}
}
答案 0 :(得分:0)
尝试使用toggleButton
的Arabic864 arabic864 = new Arabic864();
byte[] arabicTXT = arabic864.Convert("بسم الله الرحمن الرحيم", false);
lp.write(arabicTXT);
setOnCheckedChangeListener
答案 1 :(得分:0)
创建一个这样的类
private static class OnToggleButtonChangeListener implements CompoundButton.OnCheckedChangeListener{
private final ToggleButton toggleButton1;
private final ToggleButton toggleButton2;
public OnToggleButtonChangeListener(ToggleButton toggleButton1, ToggleButton toggleButton2){
this.toggleButton1 = toggleButton1;
this.toggleButton2 = toggleButton2;
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
toggleButton1.setEnabled(!isChecked);
toggleButton2.setEnabled(!isChecked);
}
}
将监听器分配给按钮并提供2个按钮,如果切换状态改变则应禁用这些按钮
toggleButtonXy.setOnCheckedChangeListener(new OnToggleButtonChangeListener(toggleButtonX, toggleButtonY));
答案 2 :(得分:0)
您可以尝试我的代码:
private void setChecked(int id) {
try {
ToggleButton[] toogles = {toogle1, toogle2, toogle3};
for (int i = 0; i < toogles.length; i++) {
if (id != i) {
toogles[i].setEnabled(false);
} else {
toogles[i].setEnabled(true);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
答案 3 :(得分:0)
尝试以下代码
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch(buttonView.getId()){
case R.id.btn1:
btn2.setEnabled(!isChecked);
btn3.setEnabled(!isChecked);
break;
case R.id.btn2:
btn1.setEnabled(!isChecked);
btn3.setEnabled(!isChecked);
break;
case R.id.btn3:
btn1.setEnabled(!isChecked);
btn2.setEnabled(!isChecked);
break;
}
}