UI组件详解2---- RadioGroup、RadioButton、CheckBox、ListView、Spinner

UI组件详解2

                             ---- RadioGroup、RadioButton、CheckBox、ListView、Spinner

 

RadioGroup、RadioButton:

  单选按钮是一种双状态的按钮,可以选择或不选中。在单选按钮没有被选中时,用户能够按下或点击来选中它。但是,与复选框相反,用户一旦选中就不能够取消选中(可以通过代码来控制,界面上点击的效果是一旦选中之后就不能取消选中了)。

  多个单选按钮通常与RadioGroup同时使用。当一个单选组(RadioGroup)包含几个单选按钮时,选中其中一个的同时将取消其它选中的单选按钮。以下为我写的例子:

 

UITest3Activity代码:

packagecn.class3g.activity;

 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Log;

importandroid.widget.RadioButton;

importandroid.widget.RadioGroup;

importandroid.widget.RadioGroup.OnCheckedChangeListener;

 

public class UITest3Activity extends Activity  implements OnCheckedChangeListener{

   RadioGroup rg = null;

   private static final String TAG = "TAG";

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.radio_layout);

       

        findViews();

       

        rg.check(R.id.male);

       

        int checkedId = rg.getCheckedRadioButtonId();

        RadioButton rb = (RadioButton) this.findViewById(checkedId);

        Log.i(TAG, rb.getText().toString());

    }

 

    private void findViews() {

      rg = (RadioGroup) this.findViewById(R.id.sexRg);

      //注册监听器

      rg.setOnCheckedChangeListener(this); 

    }

 

     //覆盖onCheckedChanged接口的抽象方法

    public void onCheckedChanged(RadioGroup group, int checkedId) {

        if(group.getId() == R.id.sexRg){

             RadioButton rb = (RadioButton) this.findViewById(checkedId);

                      Log.i(TAG, rb.getText().toString());

        }

       

    }

}

 

radio_layout.xml代码如下:

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

 

   

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="RadioDemo" />

   

        android:id="@+id/sexRg"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:orientation="vertical"

        android:checkedButton="@+id/female">

       

       

             android:id="@id/female"

             android:text="女"/>

       

             android:id="@+id/male"

             android:text="男"/>

       

   

 

 

效果如下:


CheckBox

概述

复选框是一种有双状态按钮的特殊类型,可以选中或者不选中。如下是一个在activity中使用复选框的例子:

CheckBoxDemo代码:

packagecn.class3g.activity;

 

importjava.util.ArrayList;

 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Log;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.CheckBox;

importandroid.widget.CompoundButton;

importandroid.widget.CompoundButton.OnCheckedChangeListener;

 

public class CheckBoxDemo extendsActivity implements OnCheckedChangeListener{

 

    private CheckBox cb1,cb2,cb3,cb4;

    Button submitBtn = null;

    private ArrayList list = new ArrayList ();

    protected voidonCreate(Bundle savedInstanceState) {

         setContentView(R.layout.checkbox_layout);

        super.onCreate(savedInstanceState);

        findViewS();

    }

    private void findViewS() {

        cb1 = (CheckBox) this.findViewById(R.id.cb1);

        cb2 = (CheckBox) this.findViewById(R.id.cb2);

        cb3 = (CheckBox) this.findViewById(R.id.cb3);

        cb4 = (CheckBox) this.findViewById(R.id.cb4);

       

        list.add(cb1);

        list.add(cb2);

        list.add(cb3);

        list.add(cb4);

       

        for(CheckBox cb : list){

            //为什么参数是this

            /*当前类实现了监听器接口,所以当前类的实例this可以

             * 当作一个监听器对象放入setOnCheckedChangeListener()

             * 方法之中做参数

             * */

            cb.setOnCheckedChangeListener(this);

        }

       

        submitBtn = (Button) this.findViewById(R.id.submitBtn);

        submitBtn.setOnClickListener(new OnClickListener() {

           

            public void onClick(View v) {

                String fav = "";

               

                for(CheckBox cb : list){

                    if(cb.isChecked()){

                        fav += cb.getText() + ",";

                    }

                }

                Log.i("TAG", fav);

            }

        });

    }

    //onCheckedChanged覆盖接口的抽象方法

    public void onCheckedChanged(CompoundButtonbuttonView, boolean isChecked) {

        Log.i("TAG",buttonView.getText().toString());

       

    }

 

   

}

checkbox_layout.xml代码是:

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

 

   

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="爱好"

        android:textSize="20dp"

         />

   

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:stretchColumns="*"

        android:id="@+id/tableLayout"

        >

        

              

                  android:id="@+id/cb1"

                  android:layout_width="match_parent"

                  android:layout_height="wrap_content"

                  android:text="足球"

                  />

             

                  android:id="@+id/cb2"

                  android:layout_width="match_parent"

                  android:layout_height="wrap_content"

                  android:text="篮球"

                  />

            

           

             

                  android:id="@+id/cb3"

                  android:layout_width="match_parent"

                  android:layout_height="wrap_content"

                  android:text="游泳"

                  />

             

                  android:id="@+id/cb4"

                  android:layout_width="match_parent"

                  android:layout_height="wrap_content"

                  android:text="武术"

                  />

            

            

        

       

   

     

你可能感兴趣的:(UI组件详解2---- RadioGroup、RadioButton、CheckBox、ListView、Spinner)