使用CheckBox控件,可以使用setChecked方法设置控件是否选中,如果其中一个选中,则设置其他CheckBox控件不可以被选中,设置为false.
代码如下:
package com.example.checkboxdemo; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.CheckBox; import android.widget.CompoundButton; public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener { private CheckBox ck1; private CheckBox ck2; private CheckBox ck3; private CheckBox ck4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ck1=findViewById(R.id.ck1); ck2=findViewById(R.id.ck2); ck3=findViewById(R.id.ck3); ck4=findViewById(R.id.ck4); ck1.setOnCheckedChangeListener(this); ck2.setOnCheckedChangeListener(this); ck3.setOnCheckedChangeListener(this); ck4.setOnCheckedChangeListener(this); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (buttonView.getId()){ case R.id.ck1: if (ck1.isChecked()){ //setChecked(),更改此按钮的选中状态 如果为false,则不能选中该控件 ck2.setChecked(false); ck3.setChecked(false); ck4.setChecked(false); } break; case R.id.ck2: if (ck2.isChecked()){ ck1.setChecked(false); ck3.setChecked(false); ck4.setChecked(false); } break; case R.id.ck3: if (ck3.isChecked()){ ck1.setChecked(false); ck2.setChecked(false); ck4.setChecked(false); } break; case R.id.ck4: if (ck4.isChecked()){ ck1.setChecked(false); ck2.setChecked(false); ck3.setChecked(false); } break; default: break; } } }
效果如下:
有不当之处加以指正,一起学习,共同进步哟~
共勉:青春须早为,岂能长少年!