RadioGroup、RadioButton、ChexBox的使用
一、案例演示
单选多选选中正确答案后,在提交按钮处会提示答对信息,存在问题显示选中答案信息会叠加,需要后期改正
二、实现步骤
单选和多选的页面布局,通过RadioGroup包含RadioButton实现单选按钮只可以被选中一个。
1、activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity3">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="你的答案"></TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="1、请问坤坤喜欢的运动是什么?"></TextView>
<RadioGroup
android:id="@+id/group1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/text1a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A、唱"></RadioButton>
<RadioButton
android:id="@+id/text1b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B、跳"></RadioButton>
<RadioButton
android:id="@+id/text1c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C、rap"></RadioButton>
<RadioButton
android:id="@+id/text1d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D、篮球"></RadioButton>
</RadioGroup>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="你的答案"></TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="2、请问坤坤喜欢的运动是什么?"></TextView>
<CheckBox
android:id="@+id/text2a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A、唱"></CheckBox>
<CheckBox
android:id="@+id/text2b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B、跳"></CheckBox>
<CheckBox
android:id="@+id/text2c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C、rap"></CheckBox>
<CheckBox
android:id="@+id/text2d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D、篮球"></CheckBox>
<CheckBox
android:id="@+id/text2e"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E、watch"></CheckBox>
<Button
android:id="@+id/text1submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="提交"></Button>
</LinearLayout>
2、MainActivity.java(单选)
radioGroup.setOnCheckedChangeListener实现单选的事件监听,radioGroup.getCheckedRadioButtonId()判断选中的id
public class MainActivity extends AppCompatActivity {
private TextView textView;
private RadioGroup radioGroup;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=findViewById(R.id.text1);
radioGroup=findViewById(R.id.group1);
button=findViewById(R.id.text1submit);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
//当前radiogroup对象,选中的单选按钮id
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
String text1= "你的答案";
switch (checkedId){
case R.id.text1a:
textView.setText(text1+"A");break;
case R.id.text1b:
textView.setText(text1+"B");break;
case R.id.text1c:
textView.setText(text1+"C");break;
case R.id.text1d:
textView.setText(text1+"D");break;
}
}
});
//提交按钮事件监听
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count=0;
//单选的正确答案
if(radioGroup.getCheckedRadioButtonId()==R.id.text1a){
count++;
button.setText("您答对了"+count+"题");
}
}
});
}
}
3、MainActivity.java(复选)
public class MainActivity extends AppCompatActivity {
private TextView textView2;
private RadioGroup radioGroup;
private Button button;
private CheckBox text2a,text2b,text2c,text2d,text2e;
//给一个复选框设置事件监听
private CompoundButton.OnCheckedChangeListener listener=new CompoundButton.OnCheckedChangeListener() {
//当前按钮对象,是否被选中
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//被选中
if(buttonView.isChecked()==true){
String text2= (String) textView2.getText();
//选项的第一个字符,就是ABCDE
String a=buttonView.getText().toString().substring(0,1);
textView2.setText(text2+a);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView2=findViewById(R.id.text2);
button=findViewById(R.id.text1submit);
text2a=findViewById(R.id.text2a);
text2b=findViewById(R.id.text2b);
text2c=findViewById(R.id.text2c);
text2d=findViewById(R.id.text2d);
text2e=findViewById(R.id.text2e);
text2a.setOnCheckedChangeListener(listener);
text2b.setOnCheckedChangeListener(listener);
text2c.setOnCheckedChangeListener(listener);
text2d.setOnCheckedChangeListener(listener);
text2e.setOnCheckedChangeListener(listener);
//提交按钮事件监听
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count=0;
//多选的正确答案
if(text2a.isChecked()==true&& text2b.isChecked()==true&&
text2c.isChecked()==true&& text2d.isChecked()==true&&
text2e.isChecked()==false){
count++;
button.setText("您答对了"+count+"题");
}
}
});
}
}