android如何让checkbox实现互斥

 

1.CheckBox有一个监听器OnChangedListener,每次选择checkbox都会触发这个事件,

里边有一个参数isChecked,就是判断checkbox是否已经选上了的,可以在这判断:如果已经选上了就让其他的checkbox的setChecked设置为false。、

下面是b4[5]的一个checkbox组合实现互斥。因为监听是在事件发生之后,所以说如果让他选中,则在监听的时候,就把除了他之外所有其他的checkbox都置为false;

 

b4[0].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    for(int i = 0; i < 5; i++) {
                        if(i != 0) {
                            if(b4[i].isChecked()) b4[i].setChecked(false);
                        }
                    }
                }

            }
        });
        b4[1].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    for(int i = 0; i < 5; i++) {
                        if(i != 1) {
                            if(b4[i].isChecked()) b4[i].setChecked(false);
                        }
                    }
                }
            }
        });
        /*
        b1[1].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    for(int i = 0; i < 5; i++) {
                        if (i != 1)
                        b1[i].setChecked(false);
                    }
                if (!b1[1].isPressed())
                b1[1].setChecked(true);

            }
        });*/
        b4[2].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    for(int i = 0; i < 5; i++) {
                        if(i != 2) {
                            if(b4[i].isChecked()) b4[i].setChecked(false);
                        }
                    }
                }
            }
        });
        b4[3].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    for(int i = 0; i < 5; i++) {
                        if(i != 3) {
                            if(b4[i].isChecked()) b4[i].setChecked(false);
                        }
                    }
                }
            }
        });
        b4[4].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    for(int i = 0; i < 5; i++) {
                        if(i != 4) {
                            if(b4[i].isChecked()) b4[i].setChecked(false);
                        }
                    }
                }
            }
        });

 

 

2.android端验证码登录,传session的时候注意要把sessionID传过来,要不然会不匹配。

android如何让checkbox实现互斥

上一篇:【Android】Activity的跳转和数据传递


下一篇:【Vue 2.X】基于ElementUI 实现 dialog弹窗移动效果-自定义指令系列(二)