手记

单选按钮和多选按钮

【最后结果显示在一个界面中,但是分开理解】

1、单选按钮(RadioGroup:是单选按钮组和RadioButton)


1)在activity_main.xml中

<LinearLayout                     ------------------->控件是线性布局
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <RadioGroup                          ------------------------>单选按钮组
        android:id="@+id/genderGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">        ---------------------->组的方向是垂直方向
        <RadioButton                           ------------------->组中的第一个按钮
            android:id="@+id/femaleButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/female" />
        <RadioButton                          ------------------->组中的第二个按钮
            android:id="@+id/maleButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/male" />
    </RadioGroup>
</LinearLayout>
2)在strings.xml
<?xml version="1.0" encoding="utf-8" ?>
     <resources>
    <string name="hello">Hello World, Activity07!</string>
    <string name="app_name">activity07</string>
    <string name="male">男人</string>
</resources>

3)[代码]MainActivity.java代码:

public class MainActivity extends Activity {
    /** Called when the activity is first created. */    //对控件对象进行声明
    private RadioGroup genderGroup = null;
    private RadioButton femaleButton = null;
    private RadioButton maleButton = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        //通过控件的ID来得到代表控件的对象
        genderGroup = (RadioGroup)findViewById(R.id.genderGroup);
        femaleButton = (RadioButton)findViewById(R.id.femaleButton);
        maleButton = (RadioButton)findViewById(R.id.maleButton);
        swimBox = (CheckBox)findViewById(R.id.swim);
        runBox = (CheckBox)findViewById(R.id.run);
        readBox = (CheckBox)findViewById(R.id.read);        //为RadioGroup设置监听器,需要注意的是,这里的监听器和Button控件的监听器有所不同
        genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                if(femaleButton.getId() == checkedId){    ------------------->如果满足if条件,那么利用Toast类来显示内容为famle的小界面
                    System.out.println("famale");         ------------------->为了更方便显示执行过程,写入了System.out.println()            Toast.makeText(MainActivity.this, "famle", Toast.LENGTH_SHORT).show();      ----------->show()方法是让它实现界面显示
                }
                else if(maleButton.getId() == checkedId)
                {
                    System.out.println("male");
                }
            }
        });
    }
}

【区别Button中的监听方法,其下只是区别的部分代码,是为了方便做出对比】

[代码]java代码:

public class MainActivity extends Activity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)findViewById(R.id.calculate);
        //为按钮对象设置显示值
         button.setText("结果");
        button.setOnClickListener(new CaculateListener());
    }
        //编写监听器,是的按下按钮后就给与响应
        class CaculateListener implements View.OnClickListener {
            @Override
            public void onClick(View v) {
               //要使按钮点击后做出什么反应,都在此方法中设置
            }
        }
    }


2、CheckBox:多选按钮【注意:其不存在组的概念】

1)activity_main.xml

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <CheckBox                 ---------------------------->多选按钮的布局
        android:id="@+id/swim"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/swim" />
    <CheckBox
        android:id="@+id/run"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/run" />
    <CheckBox
        android:id="@+id/read"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/read" />
</LinearLayout>

2)strings.xml

<?xml version="1.0" encoding="utf-8" ?>
     <resources>
    <string name="hello">Hello World, Activity07!</string>
    <string name="app_name">activity07</string>
    <string name="swim">swim</string>
    <string name="run">run</string>
    <string name="read">read</string>
</resources

3)[代码]MainActivity.java代码:[仅仅是多选按钮的代码】

 //为多选按钮添加监听器【为多选按钮中的为一个按钮都要设置监听器】                                【下篇日记着重介绍CompoundButton类 】swimBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {    ----------- >CheckBox继承了CompoundButton类 
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {    ---------->区别单选按钮的监听方法的参数
                // TODO Auto-generated method stub
                if(isChecked)                             ----------------->若传入的isChecked是真,则就选中该组中的按钮
                {                                          ----------------->若传入的isChecked是假,则就未选中该组中的按钮
                    System.out.println("swim is checked");
                }
                else
                {
                    System.out.println("swim is unchecked");
                }
            }
        });
        runBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked)
                {
                    System.out.println("run is checked");
                }
                else
                {
                    System.out.println("run is unchecked");
                }
            }
        });
        readBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked)
                {
                    System.out.println("read is checked");
                }
                else
                {
                    System.out.println("read is unchecked");
                }
            }
        });

原文链接:http://www.apkbus.com/blog-792467-60665.html


0人推荐
随时随地看视频
慕课网APP