android入门之:单选多选(事件监听器)

时间:2024-05-31 09:05:02

    昨天我们已经学习了View视图,那么今天,我们就来了解一下单选和多选按钮。

    下面,我们现在说一下单选按钮:

    单选按钮:

RadioButton是TextView的子类,所以,TextView的属性RadioButton都有

RadioButton:点选按钮,如果想要互斥效果,必须配合RadioGroup使用

例如:

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        />
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text=""
    />
</RadioGroup>

其中:wrap_content是自动设置宽高(根据按钮和文本的大小,自动设置)

android:checked="true|false" 设置默认选中状态,默认是不选中(如果同时默认多个按钮选中,则只默认选中最后一个)

例如:

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="14"
        android:checked="true"
        />
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="13"
        android:checked="true"
    />
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="12"
        android:checked="true"
        />
</RadioGroup>

单选按钮组的事件监听器OnCheckedChangedListener()

public class examActivty extends AppCompatActivity {
    private RadioGroup bg;
    private RadioButton btn1;
    private RadioButton btn2;
    private RadioButton btn3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_exam_activty);
        bg = findViewById(R.id.bg);
        btn1 = findViewById(R.id.btn1);
        btn2 = findViewById(R.id.btn2);
        btn3 = findViewById(R.id.btn3);
        bg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch(checkedId){
                    case R.id.btn1 :
                        Toast.makeText(examActivty.this,"14",Toast.LENGTH_SHORT).show();
                        ;break;
                    case R.id.btn2 :
                        Toast.makeText(examActivty.this,"13",Toast.LENGTH_SHORT).show();
                        ;break;
                    case R.id.btn3 :
                        Toast.makeText(examActivty.this,"12",Toast.LENGTH_SHORT).show();
                        ;break;
                }
            }
        });
    }
}

android入门之:单选多选(事件监听器)

其中Toast的意思是提示,

Toast.makeText(context:包名.this,text:"弹出的内容",Toast.Length_Short).show()

多选框CheckBox:

<CheckBox
    android:id="@+id/cb1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="A"/>
<CheckBox
    android:id="@+id/cb2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="B"/>
<CheckBox
    android:id="@+id/cb3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="C"/>
<CheckBox
    android:id="@+id/cb4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="D"/>

多选框的监听事件:

private CheckBox cb1;
private CheckBox cb2;
private CheckBox cb3;
private CheckBox cb4;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    cb1 = findViewById(R.id.cb1);
    cb2 = findViewById(R.id.cb2);
    cb3 = findViewById(R.id.cb3);
    cb4 = findViewById(R.id.cb4);
    cb1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.i("enen","1");
        }
    });