CompoundButton之RadioButton、CheckBox、ToggleButton、Switch

原创 2016年05月30日 16:08:56
   当这四个选择式按钮的状态改变的时候,获取该按钮状态的文字,并且显示在TextView上。
   string的代码:
<string name="app_name">Itsxwz</string>
<string name="checked">选定了CB</string>
<string name="unchecked">取消了CB</string>
<string name="textOn_tbVibrate">TB是打开的</string>
<string name="textOff_tbVibrate">TB是关闭的</string>
<string name="textOn_swWifi">打开了</string>
<string name="textOff_swWifi">关闭了</string> 

   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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.example.itsxwz.MainActivity">

   <RadioGroup
       android:id="@+id/rgGender"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">

      <RadioButton
          android:id="@+id/rbFemale"
          android:checked="true"
          android:text="Female"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

      <RadioButton
          android:id="@+id/rbMale"
          android:text="Male"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

   </RadioGroup>

   <CheckBox
       android:id="@+id/cbPlace"
       android:layout_marginTop="10dp"
       android:text="勾选框"
       android:onClick="onPlaceClick"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />

   <ToggleButton
       android:id="@+id/tbVibrate"
       android:layout_marginTop="10dp"
       android:onClick="onVibrateClick"
       android:textOn="@string/textOn_tbVibrate"
       android:textOff="@string/textOff_tbVibrate"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />

   <Switch
       android:id="@+id/swWifi"
       android:layout_marginTop="12dp"
       android:padding="10dp"
       android:switchMinWidth="12sp"
       android:switchPadding="12sp"
       android:text="Wifi"
       android:textOff="@string/textOff_swWifi"
       android:textOn="@string/textOn_swWifi"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />

   <TextView
       android:id="@+id/tvMessage"
       android:padding="5dp"
       android:textSize="20sp"
       android:background="#ff0"
       android:layout_width="match_parent"
       android:layout_height="80dp" />

</LinearLayout>
    MainActivity.java的代码:
public class MainActivity extends AppCompatActivity {
    private TextView tvMessage;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViews();
    }

    private void findViews() {
        tvMessage = (TextView) findViewById(R.id.tvMessage);
        RadioGroup rgGender = (RadioGroup) findViewById(R.id.rgGender);
        Switch swWifi = (Switch) findViewById(R.id.swWifi);

        rgGender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton = (RadioButton)group.findViewById(checkedId);
                tvMessage.setText(radioButton.getText());
            }
        });

        swWifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                Switch sw = (Switch) buttonView;
                String swName = sw.getText().toString();
                String message = "";
                if (isChecked){
                    message = swName + " " + sw.getTextOn();
                }else {
                    message = swName + " " + sw.getTextOff();
                }
                tvMessage.setText(message);
            }
        });

    }


    public void onPlaceClick(View v){
        CheckBox checkBox = (CheckBox) v;
        String checkBoxName = checkBox.getText().toString();
        String message;

        if (checkBox.isChecked())
            message = getString(R.string.checked) + " " + checkBoxName;
        else{
            message = getString(R.string.unchecked) + " " + checkBoxName;
        }
        tvMessage.setText(message);
    }

    public void onVibrateClick(View v){
        ToggleButton toggleButton = (ToggleButton) v;
        tvMessage.setText(toggleButton.getText());
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

android开关按钮,Switch,ToggleButton,RadioButton,CheckBox ,多种实现开关按钮

android开关按钮,Switch,ToggleButton,RadioButton,CheckBox ,多种实现开关按钮

Android学习笔记---第四天---基础UI组件---RadioButton&CheckBox&ToggleButton&Switch---Button的子类

Button组件及其子类 Button是一个按钮组件详情请参考Android学习笔记---第三天---基础UI组件---Button&ImageButton; RadioButton//单选框&Che...
  • z_kaif
  • z_kaif
  • 2016年04月05日 19:53
  • 890

设置ToggleButton、Switch、CheckBox和RadioButton的显示效果

ToggleButton、Switch、CheckBox和RadioButton都是继承自android.widget.CompoundButton,意思是可选择的,因此它们的用法都很类似。Compo...
  • luoweifu
  • luoweifu
  • 2013年09月17日 01:06
  • 43869

004 RadioButton,ToggleButton和Switch控件

RadioButton 单选按钮 activity_main.xml

Button、ImageButton、EditText、CheckBox、ToggleButton、RadioButton和Radio

除了最经常用到的TextView视图之外,还有其他一些您将频繁使用到的基础视图: ● Button—表示一个按钮的小部件。   ● ImageButton—与Button视图类似,...

Android用户界面 UI组件--TextView及其子类(五) DigitalClock,AnalogClock,RadioButton,CheckBox,ToggleButton汇总

DigitalClock和AnalogClock两个时钟类 可以为DigitalClock设置背景图片,自定义时针,秒针,分针的样式 例子: ...

ToggleButton、Switch、CheckBox小结

关于Switch、ToggleButton、CheckBox小结 背景 应用场景 事件回调机制及重绘 背景 由于最近项目要用到指纹设置功能,在个人设置模块中打开 即可。接到产品工程师的UI设计,感...

Switch-RadioButton-CheckBox例子

这里具体这么用我就不解释了,下面我就对他们做一个例子讲解:
  • kluing
  • kluing
  • 2014年07月11日 20:52
  • 936

Android控件 - TextView、Button、EditText、CompoundButton、CheckBox简介

TextViewTextView类是View的直接子类,用于单纯地显示一行或多行静态文本的视图。它继承View所有XML属性,并有着自己的XML属性。在XM布局中常用的属性: 属性 说明 a...
  • lyz_zyx
  • lyz_zyx
  • 2016年08月22日 14:12
  • 601
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CompoundButton之RadioButton、CheckBox、ToggleButton、Switch
举报原因:
原因补充:

(最多只允许输入30个字)