Java 如何允许3个android切换按钮中的1个同时打开
我使用3个切换按钮。在我的android应用程序中,我希望一次只能选择其中的一个切换按钮。我该怎么做呢?你可以用。如果你不想这样做,请查看-它向你展示了如何监听按钮状态的变化。如果您发现其中一个按钮已更改,请将另两个按钮更改为关闭状态。一个简单的onChangeListener将执行以下操作:Java 如何允许3个android切换按钮中的1个同时打开,java,android,togglebutton,Java,Android,Togglebutton,我使用3个切换按钮。在我的android应用程序中,我希望一次只能选择其中的一个切换按钮。我该怎么做呢?你可以用。如果你不想这样做,请查看-它向你展示了如何监听按钮状态的变化。如果您发现其中一个按钮已更改,请将另两个按钮更改为关闭状态。一个简单的onChangeListener将执行以下操作: public class TestProjectActivity extends Activity { ToggleButton one; ToggleButton two; ToggleButton
public class TestProjectActivity extends Activity {
ToggleButton one;
ToggleButton two;
ToggleButton three;
ToggleButton four;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
one = (ToggleButton) findViewById(R.id.toggleButton1);
two = (ToggleButton) findViewById(R.id.toggleButton2);
three = (ToggleButton) findViewById(R.id.toggleButton3);
four = (ToggleButton) findViewById(R.id.toggleButton4);
one.setOnCheckedChangeListener(changeChecker);
two.setOnCheckedChangeListener(changeChecker);
three.setOnCheckedChangeListener(changeChecker);
four.setOnCheckedChangeListener(changeChecker);
}
OnCheckedChangeListener changeChecker = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
if (buttonView == one) {
two.setChecked(false);
three.setChecked(false);
four.setChecked(false);
}
if (buttonView == two) {
one.setChecked(false);
three.setChecked(false);
four.setChecked(false);
}
if (buttonView == three) {
two.setChecked(false);
one.setChecked(false);
four.setChecked(false);
}
if (buttonView == four) {
two.setChecked(false);
three.setChecked(false);
one.setChecked(false);
}
}
}
};
}/P>< P> Pikman的解决方案是可以的,但是取决于你有多少个按钮,你可能需要考虑一个可以迭代的数组。
对于少量的按钮,Pikeman的代码可以简化以节省一些输入public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
if (buttonView != one) {
one.setChecked(false);
}
if (buttonView != two) {
two.setChecked(false);
}
if (buttonView != three) {
three.setChecked(false);
}
if (buttonView != four) {
four.setChecked(false);
}
}
}
我使用以下功能
private void setIsChecked(CheckBox checkBox){
buttonOne.setChecked(false);
buttonTwo.setChecked(false);
buttonThree.setChecked(false);
checkBox.setChecked(true)
}
现在,除了您选择的一个,所有这些都被视为
前
现在只选中一个按钮,以此类推。您可以使用RadioGroup()。看这条线。为什么是CompoundButton与RadioGroup?
setIsChecked(buttonOne);