Android RadioButton和CheckBox

此文出自菜鸟教程,本人进行学习总结

RadioButton(单选按钮)

单选按钮顾名思义,只能单选,需要我们放在RadioGroup按钮组中,实现单选。
下面我们来看代码

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别:"
            android:layout_marginRight="10dp"
            />
        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioGroup"
            android:orientation="horizontal">
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:layout_marginRight="10dp"
                android:id="@+id/bt1"
                android:text=""/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:id="@+id/bt2"
                android:text=""/>
        </RadioGroup>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确定"
            android:id="@+id/sure"
            android:textSize="20sp"/>
    </LinearLayout>

效果图
在这里插入图片描述
获得选中的值:
这里有两种方法,
第一种是为RadioButton设置一个事件监听器setOnCheckChangeListener
第二种方法是通过单击其他按钮获取选中单选按钮的值
例子代码如下:

package com.example.radiobutton;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private RadioGroup radioGroup;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        radioGroup = (RadioGroup)findViewById(R.id.radioGroup);

        //        方法一
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int id) {
                RadioButton  radio =(RadioButton)findViewById(id) ;
                Toast.makeText(MainActivity.this, "按钮组值发生改变,你选了"+radio.getText(), Toast.LENGTH_SHORT).show();
            }
        });

        //        方法二

        button = (Button) findViewById(R.id.sure);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                for (int i = 0; i < radioGroup.getChildCount(); i++) {
                    RadioButton rd = (RadioButton) radioGroup.getChildAt(i);
                    if(rd.isChecked()){
                        Toast.makeText(MainActivity.this, "点击按钮你选择的是:"+rd.getText(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
    }
}

效果图

CheckBox(复选框)

两种方式:
1.为每个CheckBox添加事件:setOnCheckedChangeListener
2.弄一个按钮,在点击后,对每个checkbox进行判断:isChecked();

 <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="vertical">
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="选择你喜欢的水果"/>
       <CheckBox
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="香蕉"
           android:id="@+id/cb1"
           android:textColor="@android:color/black"/><CheckBox
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="苹果"
            android:id="@+id/cb2"

       android:textColor="@android:color/black"/><CheckBox
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="菠萝"
           android:id="@+id/cb3"
       android:textColor="@android:color/black"/>
       <Button
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/btnSend"
           android:text="提交"/>
   </LinearLayout>
package com.example.radiobutton;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener, View.OnClickListener {

    private CheckBox cb1,cb2,cb3;
    private Button btnSend;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cb1 = (CheckBox) findViewById(R.id.cb1);
        cb2 = (CheckBox) findViewById(R.id.cb2);
        cb3 = (CheckBox) findViewById(R.id.cb3);
        btnSend = (Button) findViewById(R.id.btnSend);
        cb1.setOnCheckedChangeListener(this);
        cb2.setOnCheckedChangeListener(this);
        cb3.setOnCheckedChangeListener(this);
        btnSend.setOnClickListener(this);
    }

    //方法一
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        if(compoundButton.isChecked()){
            Toast.makeText(this, compoundButton.getText().toString(), Toast.LENGTH_SHORT).show();
        }
    }
    //方法二

    @Override
    public void onClick(View view) {
        String string = "";
        if(cb1.isChecked()) {
            string += cb1.getText().toString();
        }
        if(cb2.isChecked()) {
            string += cb2.getText().toString();
        }
        if(cb3.isChecked()) {
            string += cb3.getText().toString();
        }
        Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值