• 首先,在布局文件中注册RadioGroup,图中两个RadioButton为一个... activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"



    首先,在布局文件 activity_main.xml中注册一个RadioGroup,并为RadioGroup设置监听,图中两个RadioButton为一个RadioGroup。


    activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <TextView android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <RadioGroup
            android:id="@+id/radioGroupID"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
    
            <RadioButton
                android:id="@+id/femaleGroupID"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="female"
                />
            <RadioButton
                android:id="@+id/maleGroupID"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="male"/>
        </RadioGroup>
    
    </LinearLayout>
    



    MainActivity.java

    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    
    
    public class MainActivity extends ActionBarActivity {
    
        private RadioGroup radioGroup;
        private RadioButton femaleRadioButton;
        private RadioButton maleRadioButton;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //加载布局文件
            setContentView(R.layout.activity_main);
            //获取实例
            radioGroup=(RadioGroup)findViewById(R.id.radioGroupID);
            femaleRadioButton=(RadioButton)findViewById(R.id.femaleGroupID);
            maleRadioButton=(RadioButton)findViewById(R.id.maleGroupID);
            //设置监听
            radioGroup.setOnCheckedChangeListener(new RadioGroupListener());
        }
        //定义一个RadioGroup的OnCheckedChangeListener
        //RadioGroup  绑定的是RadioGroup.OnCheckedChangeListener
        //CheckBox    绑定的是CompoundButton.OnCheckedChangeListener 或者 view.OnClickListener
     
        class RadioGroupListener implements RadioGroup.OnCheckedChangeListener{
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if (checkedId==femaleRadioButton.getId()){
                    System.out.println("选中了female!");
                }else if (checkedId==maleRadioButton.getId()){
                    System.out.println("选中了male!");
                }
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }
    


    日志显示如下:


       





    展开全文
  • Android中用CheckBox+LinearLayout来实现一种多行单选按钮组的效果。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82691961
  • Android学习之单选按钮

    2018-09-01 17:10:24
    单选按钮其实就是好几个按钮成为了一个大家族,我们每次只能够选择一个成员,创建单选按钮的方法就是把平常我们见到的普通按钮Button给他们装到一个盒子里面,让他们成为一个按钮组,所以就有了RadioGroup的产生。...

    单选按钮其实就是好几个按钮成为了一个大家族,我们每次只能够选择一个成员,创建单选按钮的方法就是把平常我们见到的普通按钮Button给他们装到一个盒子里面,让他们成为一个按钮组,所以就有了RadioGroup的产生。

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <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>

    以上代码就是我们创建了一个单选按钮组,在这个按钮组里面我们创建了两个按钮(当然我们也可以创建更多的),注意我们一定要把每一个Button给包含到RadioGroup中。
    其中android:orientation="horizontal" 可以设置按钮组中按钮的排列方向

    horizontal   按钮横向排列
    vertical     按钮纵向排列

    按钮组创建出来了,但是现在这些个代码还不能读取每个按钮的状态,接下来我们要做的就是获取每一个按钮的选中状态。我们有两种方式获得,第一种是当改变单选按钮组的值时获取,第二种是当单击其他按钮时获取。
    1、改变单选按钮组的值时获取
    首先我们要为刚才创建的按钮组设置一个id属性

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <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>

    然后在主方法中利用id获取按钮组对象,然后给他们添加专门用于单选按钮组的监听器

    RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1);
    sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
        public void onCheckedChanged(RadioGroup group,int checkedId){
             RadioButton r=(RadioButton)findViewById(checkedId);
             Toast.makeText(MainActivity.this,"您选择的是"+r.getText(),Toast.LENGTH_LONG).show();
                }
            });

    其中的r.getText() 就是得到这个按钮所对应的文本内容
    2、单击其他按钮时获取
    单击其他按钮时获取选中项的值时,首先需要在该按钮的单击事件监听器的onClick()方法中,通过for循环语句遍历当前单选按钮组,并根据被遍历到的单选按钮的isChecked()方法判断该按钮是否被选中,当被选中时,通过单选按钮的getText()方法获取对应的值,例如,要在单击“提交”按钮时,获取ID属性为radioGroup1的单选按钮组的值,代码如下

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <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>
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"/>

    注意要给按钮组和组外的提交按钮设置id属性
    主方法中的部分代码如下

    public class MainActivity extends AppCompatActivity {
    
        private RadioGroup sex;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            sex=(RadioGroup)findViewById(R.id.radioGroup1);
            Button button=(Button)findViewById(R.id.button1);
            button.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    for(int i=0;i<sex.getChildCount();i++){
                        RadioButton r=(RadioButton)sex.getChildAt(i);//根据索引值获取单选按钮
                        if(r.isChecked()){
                            Toast.makeText(MainActivity.this,"您选择的是"+r.getText(),Toast.LENGTH_LONG).show();
                        }
                    }
                }
            });
      }
    }

    注意这里面我们先写了这句话private RadioGroup sex; 那是因为我们一会要在事件监听器的方法中使用sex,所以我们要把sex设置成全局的类型。

    如果我们要想某些按钮在初始化的时候就已经默认被选中,那么我们可以这样写

    <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男"
            android:checked="true"/>

    其中的android:checked="true" 就代表按钮初始就已经被选中了

    true  默认被选中
    false 默认不被选中

    当然默认被选中的按钮我们在程序运行的时候也可以把它进行取消,这在我们生活中都有这个体验。

    展开全文
  • Android使用RadioButton结合ListView显示对话框单选按钮列表有时候对话框的单选按钮列表不能满足我们的的设计需求,因为有时候按钮右边不一定是文字,有可能是文件加图片,或多个文字字段的一行内容,这时我们就需要...

    Android使用RadioButton结合ListView显示对话框单选按钮列表

    有时候对话框的单选按钮列表不能满足我们的的设计需求,因为有时候按钮右边不一定是文字,有可能是文件加图片,或多个文字字段的一行内容,这时我们就需要自定义来解决了。

    普通单选的效果:

    s1

    自定义的效果:

    s2

    本文中介绍的示例效果:

    这里写图片描述

    自定义的单选列表数据设计是由ListView的条目构成的,一行数据可以设计成很复杂的内容,比如多张图片或分行显示等等。

    设计思想:ListView里面的条目布局左边(或者可以在右边)放一个RadioButton控件,右边设计放文本或图片,可以多个。

    还有一个有点复杂的设计的是要判断每一行只有一个RadioButton能被选中,其实是在点击的时候先把每一行的按钮的属性设置为不被选中,然后再把点击的那个按钮的属性设置为选中,这样每次就能保证不会有两个RadioButton被选中。

    贴一下主要代码:

    (一)ListView的条目的布局设计代码

    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:orientation="horizontal"
                  android:layout_width="match_parent"
                  android:layout_height="80dp"
                  android:paddingBottom="10dp"
                  android:paddingTop="10dp"
            >
        <RadioButton
                android:id="@+id/rb"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                />
        <TextView
                android:id="@+id/tv_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="info"
                android:textSize="25sp"
                />
        <ImageView
                android:id="@+id/iv_picture"
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:scaleType="center"
                />
    </LinearLayout>

    (二)Adapter类中判断所有行只能有一行的RadioButton按钮被选中。

    //用于记录每个RadioButton的状态,并保证只可选一个
     public HashMap<Integer, Boolean> states = new HashMap<Integer, Boolean>();  //在这里要做判断保证只有一个RadioButton被选中
            //当RadioButton被选中时,将其状态记录进States中,并更新其他RadioButton的状态使它们不被选中
            viewHolder.rb.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //把所有的按钮的状态设置为没选中
                    for (int i = 0; i < getCount(); i++) {
                        states.put(i, false);
                    }
                    //然后设置点击的那个按钮设置状态为选中
                    states.put(position, true);    //这样所有的条目中只有一个被选中!
                    notifyDataSetChanged();//刷新适配器
                }
            });
    
            //上面是点击后设置状态,但是也是需要设置显示样式,通过判断状态设置显示的样式
            if (states.get((Integer) position) == null || states.get((Integer) position) == false) {  //true说明没有被选中
                viewHolder.rb.setChecked(false);
            } else {
                viewHolder.rb.setChecked(true);
            }

    三.显示对话框方法的代码

        // 使用对话框内的控件来关闭对话框
        private void getSignatureDialog() {
    
            // View
            final View view = View.inflate(this, R.layout.dialog_signature, null);
            ListView lv_signature = (ListView) view.findViewById(R.id.lv_signature);
            Button btn_yes = (Button) view.findViewById(R.id.btn_yes);
            Button btn_no = (Button) view.findViewById(R.id.btn_no);
            final View listviewLayout = View.inflate(this, R.layout.dialog_signature, null);
    
            //List
            List<SignatureBean> signatureList = new ArrayList<SignatureBean>();
            final String[] info = {"张三", "李四", "王五", "赵六"};
            final int[] pictureID = {R.drawable.ic_launcher, R.drawable.sig, R.drawable.signature, R.drawable.sort1};
            for (int i = 0; i < info.length; i++) {
                signatureList.add(new SignatureBean(info[i], pictureID[i]));
            }
    
            //adapter
            final SignatureAdapter adapter = new SignatureAdapter(this, signatureList);
            lv_signature.setAdapter(adapter);
    
    
            // 创建对话框对象
            final AlertDialog dialog = new AlertDialog.Builder(this).
                    // 设置标题
    //                        setTitle("通过按钮关闭对话框").
                            // 添加输入的文本框
                            setView(view).
                    // 产生
                            create();
    
            // 设置对话框不可以关闭,一般情况下对话框是失去焦点后自动消失的
            // 但是加 了.setCancelable(false),对话框就不会消失,除非手动退出
            dialog.setCancelable(false);
            // 显示
            dialog.show();
    
            //设置View内的点击事件
    
            btn_yes.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
    //                Toast.makeText(MyActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
                    for (int i = 0; i < info.length; i++) {
                        if (adapter.states.get(i) != null && (adapter.states.get(i))) {
                            imageView.setImageResource(pictureID[i]);
                        }
                    }
                    dialog.dismiss();
                }
            });
    
            btn_no.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // 点击后关闭对话框,两种方法都可以
                    //  dialog.cancel();
                    dialog.dismiss();
    //                Toast.makeText(MyActivity.this, "点击了取消", Toast.LENGTH_SHORT).show();
                }
            });
    
    
        }

    其他的代码大家可以思考一下,这里也提供一下我的源代码:

    http://download.csdn.net/detail/wenzhi20102321/9820636

    如果你的页面有多个对话框最好统一一下颜色,系统的对话框标题字体颜色是:#33B5E5,标题下面那条横线的颜色也是这个。

    当然这个UI界面如果要用到程序中是需要设计好看一一点的,比如字体的颜色大小,按钮的背景选择等等设置,我这里只是我开发项目测试的一个小Demo,很多数据要和项目主题对应,需要自己慢慢改。

    对于android对话框的使用总结,我之前也是有个详细的总结,包括各种列表的对话框,各种进度条的对话框,各种时间、日期选中的对话框的使用都有,大家可以借鉴。

    http://blog.csdn.net/wenzhi20102321/article/details/52818351

    共勉:再艰难的时刻总有过去的时候。

    展开全文
  • 单选按钮需要放到单选按钮组RadioGroup中,每组中只有一个元素可以被选中。RadioGroup常用属性有: check,设置选中按钮的资源编号 getCheckedRadioButtonId,获取选中按钮的资源编号 实例代码如下: <?xml ...

    功能

    从多种选择中选择一个,需要单选按钮,经典场景是选择性别男、女。

    显示

    单选按钮需要放到单选按钮组RadioGroup中,每组中只有一个元素可以被选中。RadioGroup常用属性有:

    • check,设置选中按钮的资源编号
    • getCheckedRadioButtonId,获取选中按钮的资源编号

    实例代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="4dp">
       <TextView
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="请选择性别"/>
       <RadioGroup
           android:id="@+id/radioGroupSex"
           android:layout_width="match_parent"
           android:layout_height="wrap_content">
           <RadioButton
               android:id="@+id/radioMale"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text=""
               android:checked="true"/>
           <RadioButton
               android:id="@+id/radioFemale"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text=""/>
       </RadioGroup>
       <Button
           android:id="@+id/buttonOk"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:text="确认"/>
    </LinearLayout>
    

    效果:
    在这里插入图片描述

    获取选中项

    点击确认按钮后,获取选中项,并弹窗提示,代码如下:

    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取按钮
            Button buttonOk = findViewById(R.id.buttonOk);
            //设置按钮点击监听器
            buttonOk.setOnClickListener(new MyOnClickListener());
        }
    
        //定义按钮点击监听器
        class MyOnClickListener implements View.OnClickListener {
            //按钮点击
            @Override
            public void onClick(View view) {
                if (view.getId() == R.id.buttonOk) {//被点击的是确认按钮
                    //获取选中项
                    RadioGroup radioGroup = findViewById(R.id.radioGroupSex);
                    String sex = "";
                    if (radioGroup.getCheckedRadioButtonId() == R.id.radioMale) {
                        sex = "男";
                    } else {
                        sex = "女";
                    }
                    //显示提示框
                    Toast.makeText(MainActivity.this, "你选择了:" + sex, Toast.LENGTH_SHORT).show();
                }
            }
        }
    }
    

    效果:
    在这里插入图片描述

    监听选中项变化

    当选中项发生变化时,可以监听该变化,代码如下:

    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            RadioGroup radioGroup = findViewById(R.id.radioGroupSex);
            //设置监听器
            radioGroup.setOnCheckedChangeListener(new MyOnCheckedChangeListener());
        }
    
        class MyOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener{
            //用户点击单选按钮触发
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                if(i==R.id.radioMale){
                    Toast.makeText(MainActivity.this, "你选择了:男", Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this, "你选择了:女" , Toast.LENGTH_SHORT).show();
                }
            }
        }
    }
    

    注意当选中项变化时才会触发!

    展开全文
  • 单选按钮 .xml文件代码如下: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:...

    单选按钮

    .xml文件代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="性别:"
                android:textSize="20dp"
                android:height="100px"/>
            <RadioGroup
                android:id="@+id/RadioGroup1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <RadioButton
                    android:id="@+id/nan"
                    android:layout_width="wrap_content"
                    android:layout_height="100px"
                    android:text="男"/>
                <RadioButton
                    android:id="@+id/nv"
                    android:layout_width="wrap_content"
                    android:layout_height="100px"
                    android:text="女"/>
            </RadioGroup>
        </LinearLayout>
        <Button
            android:id="@+id/tijiao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"/>
    </LinearLayout>
    
    

    .java文件代码如下:

    package com.example.button;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            final RadioGroup sex=(RadioGroup) findViewById(R.id.RadioGroup1);//获取单选按钮组
            //为单选按钮组添加事件监听
            sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup radioGroup, int i) {
                    RadioButton RB=(RadioButton) findViewById(i);//获取被选择的单选按钮
                    Log.i("单选按钮","你的选择是:"+RB.getText());
                }
            });
    
            Button button=(Button) findViewById(R.id.tijiao);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //通过for循环遍历单选按钮组
                    for(int i=0;i<sex.getChildCount();i++){
                        RadioButton RB=(RadioButton) sex.getChildAt(i);
                        if(RB.isChecked())
                        {
                            Log.i("单选按钮","性别:"+RB.getText());
                            break;
                        }
                    }
                }
            });
        }
    }
    
    

    运行效果图如下:在这里插入图片描述
    找到Android Studio此处:在这里插入图片描述
    然后进入夜神模拟器选择单选按钮组里面任意性别选项(比如选择男)
    在这里插入图片描述
    此时Android Studio此处更改为在这里插入图片描述
    点击提交之后更改为
    在这里插入图片描述

    复选按钮

    .xml文件代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="爱好:"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <CheckBox
                android:id="@+id/tiyu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="体育"/>
            <CheckBox
                android:id="@+id/yinyue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="音乐"/>
            <CheckBox
                android:id="@+id/meishu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="美术"/>
            <CheckBox
                android:id="@+id/yingyu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="英语"/>
        </LinearLayout>
        <Button
            android:id="@+id/tijiao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"/>
    </LinearLayout>
    
    

    .java 文件代码如下:

    package com.example.button;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    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 {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            final CheckBox tiyu=(CheckBox) findViewById(R.id.tiyu);//获取tiyu复选按钮
            final CheckBox yinyue=(CheckBox) findViewById(R.id.yinyue);
            final CheckBox meishu=(CheckBox) findViewById(R.id.meishu);
            final CheckBox yingyu=(CheckBox) findViewById(R.id.yingyu);
            tiyu.setOnCheckedChangeListener(checkBox_listener);//为tiyu添加状态改变监听
            yinyue.setOnCheckedChangeListener(checkBox_listener);
            meishu.setOnCheckedChangeListener(checkBox_listener);
            yingyu.setOnCheckedChangeListener(checkBox_listener);
    
            Button button=(Button) findViewById(R.id.tijiao);//为提交按钮添加事件监听
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String str="";//保存所有选中的值
                    if(tiyu.isChecked())//选中体育
                        str+=tiyu.getText().toString()+"";
                    if(yinyue.isChecked())//选中音乐
                        str+=yinyue.getText().toString()+"";
                    if(meishu.isChecked())//选中美术
                        str+=meishu.getText().toString()+"";
                    if(yingyu.isChecked())//选中英语
                        str+=yingyu.getText().toString();
                    Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
                }
            });
        }
        //创建一个状态改变监听对象
        private CompoundButton.OnCheckedChangeListener checkBox_listener=new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
                if(isChecked){//判断复选按钮是否被选中
                    Log.i("复选按钮","选中了["+compoundButton.getText().toString()+"]");
                }
            }
        };
    }
    
    

    运行效果图如下:
    在这里插入图片描述
    找到Android Studio此处:
    在这里插入图片描述
    选择几项:
    在这里插入图片描述
    效果为:
    在这里插入图片描述
    点击提交效果图为:
    在这里插入图片描述

    展开全文
  • 1.单选按钮(RadioButton)的基本概念 单选顾名思义,只能在众多的选项中选出一个,但是它还有一个组(Group)的概念,就相当我们做试卷有很多单选题,每道题只能选一个,但是有很多题,不同的题就代表不同的组。 ...
  • android单选按钮使用

    2016-08-28 12:27:39
    android单选按钮使用
  • 折腾了半天,在写项目的时候,由于Android版本问题导致RadioButton原生的样式有所变化,比如说在Android4.3 单选按钮就是黑色,但是版本高点,或者其他手机(努比亚单选按钮就是红色的),5.0+就变成了浅灰色,很不...
  • android单选按钮事件

    2012-12-02 15:35:13
    前段时间忙着找工作,android也是放了好久没去碰了,突然有些怀念了就拿起了书看了一下单选按钮组件。说实话android的组件是挺多的有的组件使用起来也比较麻烦还要结合adapter来使用,今天就来点简单的吧。搞一下...
  • 在Adnroid中,单选按钮和复选框都继承了普通...在Android中 可以使用两种方法向屏幕添加单选按钮: 1.通过XML布局文件中使用 标记添加, 2.在Java文件。通过new 关键字来创建 推荐第一种方法。 adnroid:checked
  • Android开发单选按钮 创建空activity, 编辑activity_main.xml文件 代码如下: <?xml version="1.0" encoding="utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android=...
  • Android 自定义 RadioButton 单选按钮样式 项目开发中系统自带的radioButton可能满足不了我们实际的需要,配合APP整体的风格我们要对按钮进行改变,所以只能自定义一下,其实RadioButton自定义实现与checkBox区别...
  • 实现了Android单选按钮组的自定义和多行多列的功能。
  • Android单选按钮

    2016-03-04 22:58:00
    Android单选按钮 1:单选按钮   在Android中单选按钮用RadioButton表示,而RadioButton是Button的子类,所以单选按钮可以直接使用RadioButton的各种属性。 RadioButton组件的android:checked表示默认选中状态...
  • 1.单选按钮 单选按钮实例可参考如下内容(自己做练习时候写的) 在写之前我要告诉自己 android:orientation="vertical这部分是调整布局方向为垂直!!!(总是记混水平和垂直) 单选按钮以及复选框其实就控件而言...
  • 一:单选按钮 单选按钮类:RadioButton android:checked="true"设置默认选中 单选按钮控件通常与RadioGroup搭配使用。 RadioGroup是LinearLayout的子类,用于将多个单选按钮组合为一组。 同一按钮组内的单选按钮...
  • 在我们平时在注册个人信息的时候,经常会让我们选择是男生还是女生,那么这个单选框在Android中是怎么实现的呢?现在我们就来学习一下吧首先我们要明白实现这样一个效果需要哪几部?1:===========在layout布局文件...
  • RadioButton要实现单项选择功能得...下,改变RadioButton原本样式的按钮其实很简单,代码部分如下: &lt;RadioButton android:id="@+id/checked_zhuxue" android:layout_width="0dp" ...
1 2 3 4 5 ... 20
收藏数 14,144
精华内容 5,657