Android studio:Rodio button:

截屏2020-02-16下午12.47.03.png

首先我们要在主页面新建一个button用来跳转:

截屏2020-02-16下午2.37.42.png

因为我们的跳转页面的事件太多我们来简化一下代码:

package com.example.myfirstapplication;

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 Buttontest;

    private Button but2;

    private Button butEditText;

    private Button radiobutton;

    //声明组件

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Buttontest = (Button) findViewById(R.id.but_1);

        //要找到这个Button

        setOnclick(Buttontest);

        but2 = findViewById(R.id.but_2);

        setOnclick(but2);

        butEditText = findViewById(R.id.but_EditText);

        setOnclick(butEditText);

        radiobutton = findViewById(R.id.RadioButton);

        setOnclick(radiobutton);

    }

    private void setOnclick(Button Controls)

    {

        Onclick onclick = new Onclick();

        Controls.setOnClickListener(onclick);

    }

    //一般不是么写因为考虑到后面的都是为button控件这样写方便一些。

    private class Onclick implements View.OnClickListener

    {

        @Override

        public void onClick(View v) {

            //因为这里有一个v的入参,所以我们根据这个v来判断是那个控件。

            Intent intent = null;

            switch(v.getId()) {

                case R.id.but_1:

                    intent = new Intent(MainActivity.this,TextViewActivity.class);

                    break;

                case R.id.but_2:

                    intent = new Intent(MainActivity.this,ButtonActivity.class);

                    break;

                case R.id.but_EditText:

                    intent = new Intent(MainActivity.this,EditTextActivity.class);

                    break;

                case R.id.RadioButton:

                    intent = new Intent(MainActivity.this,radioBtnActivity.class);

                    break;

            }

            startActivity(intent);

        }

    }

}

新建一个Onclick的类然后该类调用View.OnClickListener这接口:

用接口里的public void onClick(View v) 的方法框架写一个新方法:

//因为这里有一个v的入参,所以我们根据这个v来判断是那个控件。

            Intent intent = null;

            switch(v.getId()) {

                case R.id.but_1:

                    intent = new Intent(MainActivity.this,TextViewActivity.class);

                    break;

                case R.id.but_2:

                    intent = new Intent(MainActivity.this,ButtonActivity.class);

                    break;

                case R.id.but_EditText:

                    intent = new Intent(MainActivity.this,EditTextActivity.class);

                    break;

                case R.id.RadioButton:

                    intent = new Intent(MainActivity.this,radioBtnActivity.class);

                    break;

            }

            startActivity(intent);

然后在外面写一个方法setOnclick,调用Onclick类,穿一个参数进去完成。

 private void setOnclick(Button Controls)

    {

        Onclick onclick = new Onclick();

        Controls.setOnClickListener(onclick);

    }

然后新建新的Activty。。。。其他的和之前的一样。

完成后开始学习Radiobutton的基本属性:

首先把布局换成相对布局:

然后新建一个Radio Button:

<RadioGroup

        android:id=”@+id/rg_sex”

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:orientation=”vertical”

        >

        <RadioButton

            android:id=”@+id/rb_male”

            android:layout_height=”wrap_content”

            android:layout_width=”wrap_content”

            android:text=”male”

            android:textSize=”18sp”

            android:checked=”true”

            />

        <RadioButton

            android:id=”@+id/rb_female”

            android:layout_height=”wrap_content”

            android:layout_width=”wrap_content”

            android:text=”female”

            android:textSize=”18sp”

            />

    </RadioGroup>

<!–    假如要只选中一个的划就要用<RadioGroup></RadioGroup>RadioButton包起来成为一个组–>

<!–    注意android:checked=”true”check如果要加默认选中的划就要有ID,否则会失效–>

截屏2020-02-16下午2.45.34.png

我们也可以用background的属性把选择框换掉:

我们先新建一个xml文件:

<?xml version=”1.0″ encoding=”utf-8″?>

<selector xmlns:android=”http://schemas.android.com/apk/res/android”

    >

    <item

        android:state_checked=”true”>

        <shape>

            <solid

                android:color=”#ffff00″

                />

            <corners

                android:radius=”15dp”

                />

        </shape>

    </item>

    <item

        android:state_checked=”false”>

        <shape>

            <stroke

                android:width=”3dp”

                android:color=”#ffff00″

                />

            <corners

                android:radius=”15dp”

                />

        </shape>

    </item>

</selector>

把样式写上:

android:state_checked=”true”和之前的button不一样的地方就是不是判断他按没按而是

判断他选没选中。

完成后把新建一个Group:

<RadioGroup

    android:id=”@+id/rg_sex2″

    android:layout_width=”wrap_content”

    android:layout_height=”wrap_content”

    android:orientation=”horizontal”

    android:layout_below=”@id/rg_sex”

    android:layout_marginTop=”50dp”

    >

    <RadioButton

        android:id=”@+id/rb_male2″

        android:layout_width=”60dp”

        android:layout_height=”60dp”

        android:button=”@null”

        android:text=”male”

        android:textSize=”18sp”

        android:background=”@drawable/radiobutton”

        android:gravity=”center”

        android:layout_marginRight=”10dp”/>

    <RadioButton

        android:id=”@+id/rd_female2″

        android:layout_width=”60dp”

        android:layout_height=”60dp”

        android:text=”female”

        android:gravity=”center”

        android:textSize=”18sp”

        android:button=”@null”

        android:background=”@drawable/radiobutton”

        />

</RadioGroup>

注意要先把android:button=”@null”换成null

然后把android:background=”@drawable/radiobutton”替换

效果:

截屏2020-02-16下午2.49.54.png

事件:

我们用2号做例子:

在java文件里。

先声明。

private RadioGroup rg1;

然后找到:

rg1 = findViewById(R.id.rg_sex2);

rg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

    @Override

    public void onCheckedChanged(RadioGroup group, int checkedId) {

        RadioButton radioButton = (RadioButton)group.findViewById(checkedId);

        Toast.makeText(radioBtnActivity.this,radioButton.getText(),Toast.LENGTH_LONG).show();

    }

});

用setOnCheckedChangeListener方法:

new 一个RadioGroup.OnCheckedChangeListener:

其中 int checkedId表示选中的ID。

我们用RadioButton radioButton = (RadioButton)group.findViewById(checkedId);

这个获取到他的对象。

然后通过Toast.makeText(radioBtnActivity.this,radioButton.getText(),Toast.LENGTH_LONG).show();

把他里面的文字给表示出来。

效果:

截屏2020-02-16下午2.54.24.png
最后修改日期:2020年2月21日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。