java - 如何一次只允许 3 个中的 1 个 android 切换按钮打开

标签 java android togglebutton

我正在使用 3 个切换按钮。在我的 android 应用程序中,我希望一次只能选择这些切换按钮中的 1 个。我该怎么做呢?

最佳答案

一个简单的 onChangeListener 就可以:

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);
            }
        }
    }
};

}

关于java - 如何一次只允许 3 个中的 1 个 android 切换按钮打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282702/

相关文章:

java - 将方法组合在一种方法中还是使用多种方法更好?

android - 在 Webview 中清除用户的 Facebook session

android - setElevation() 不适用于 AppBarLayout

android - Android map API 中的 iOS 风格标注?

javascript - jQuery 如果 div 包含文本,切换按钮

java - 即使在 Windows 8 Enterprise 上设置了路径,也无法运行 JAVA - Cordova

java - 为什么 OrElseGet 似乎没有被调用

wpf - 为什么此切换按钮上的 IsChecked 不会更改?

java - void 不是函数式接口(interface)

checkbox - TogglerBar 可以用作 Mathematica 中的多个 CheckBox 吗?