Android开发笔记(六)——RadioButton

RadioButton通常用来实现选择,比如说性别等

先新建一个进行演示的activity RadioButtonActivity,此时 AndroidMainfest.xml 中会自动添加如下声明:


如果没有添加则要自己手动添加,否则会跳转失败。

之后在 activity_main.xml 中添加一个Button用来进行RadioButton控件的展示:

接下来在 MainActivity.java 中声明这个控件:

private Button mBtnRadioButton;

之后要在 MainActivity.java 中的 onCreate 函数中使用 findViewById 找到该button,接着设置一个点击事件,使其点击之后跳转到新的界面:

mBtnRadioButton=findViewById(R.id.btn_radiobutton);
mBtnRadioButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //跳转到RadioButton的演示界面
        Intent intent=new Intent(MainActivity.this,RadioButtonActivity.class);
        startActivity(intent);
    }
});

由于每次都要重复写 setOnClickListener 函数中的点击事件,这里写一个 OnClick 类来实现 View.OnClickListener 接口的功能,再写一个方法 setListener() 来设置监听器,给每个控件设置点击事件, MainActivity.java 中的整体代码如下:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private Button mBtnTextView; //声明Button组件
    private Button mBtnButton;
    private Button mBtnEditText;
    private Button mBtnRadioButton;

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

        mBtnTextView=findViewById(R.id.btn_textview);
        mBtnButton=findViewById(R.id.btn_button);
        mBtnEditText=findViewById(R.id.btn_edittext);
        mBtnRadioButton=findViewById(R.id.btn_radiobutton);
        setListener();
    }

    private void setListener(){
        OnClick onClick=new OnClick();
        mBtnTextView.setOnClickListener(onClick);
        mBtnButton.setOnClickListener(onClick);
        mBtnEditText.setOnClickListener(onClick);
        mBtnRadioButton.setOnClickListener(onClick);
    }

    private class OnClick implements View.OnClickListener{

        @Override
        public void onClick(View v) {
            Intent intent = null;
            switch (v.getId()){
                case R.id.btn_textview:
                    //跳转到TextView演示界面
                    intent=new Intent(MainActivity.this,TextViewActivity.class);
                    break;
                case R.id.btn_button:
                    //跳转到Button演示界面
                    intent=new Intent(MainActivity.this,ButtonActivity.class);
                    break;
                case R.id.btn_edittext:
                    //跳转到EditText演示界面
                    intent=new Intent(MainActivity.this,EditTextActivity.class);
                    break;
                case R.id.btn_radiobutton:
                    //跳转到RadinButton演示界面
                    intent=new Intent(MainActivity.this,RadioButtonActivity.class);
                    break;
            }
            startActivity(intent);
        }
    }
}

常用属性


    
    
   

其中 android:checked="true" 是默认选中的属性,如果添加该选项必须要给 RadioButton 设置id!!

效果:

Android开发笔记(六)——RadioButton_第1张图片

自定义样式

当想要自定义样式的时候,可以通过如下代码实现:

    
        
        
    

其中 android:button="@null" 是把前面的选项符号去掉,这里在 drawable 里面新建了一个 radiobutton_check.xml ,具体方法:右键 drawable ——> new ——> Drawable Resource File ,Root element设置为selector。
radiobutton_check.xml 中的代码如下:



    
        
            
            
        
    

    
        
            
            
        
    

意思是没有选择的时候是描线效果,选中之后变成实心颜色,并且整体框架有弧度。

效果如下:

Android开发笔记(六)——RadioButton_第2张图片

监听事件

这里在第一组选择框中进行测试,可以监听当前的选择。
RadioButtonActivity.java 中进行声明:

private RadioGroup mRg1;

接着在 onCreate 函数中使用 findViewById 找到该组件,然后设置监听事件:

mRg1=findViewById(R.id.rg_1);
mRg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton=group.findViewById(checkedId);
    Toast.makeText(RadioButtonActivity.this,radioButton.getText(),Toast.LENGTH_SHORT).show();
    }
});

效果如下:

Android开发笔记(六)——RadioButton_第3张图片

你可能感兴趣的:(Android开发笔记(六)——RadioButton)