Android Studio初学笔记-Day10-RadioButton

RadioButton(多选一按钮)

RadioButton是个选择项目的功能,今天透过一个买车票的例子,来讲解RadioButton的用法及效果。
在实做之前还要先提一下Radiogroup,因为RadioButton其功能就是多选一,不过每个RadioButton都是独立的,必须先将多个RadioButton包在Radiogroup内形成一个Group,才能让RadioButton的多选一功能运作,以下是一组Radiogroup的演示。

程序码

<RadioGroup
        android:id="@+id/ticketNumber"
        android:layout_width="202dp"
        android:layout_height="54dp"
        android:layout_marginTop="20dp"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.176"
        app:layout_constraintStart_toEndOf="@+id/textView2"
        app:layout_constraintTop_toBottomOf="@+id/ticketType"
        tools:ignore="MissingConstraints">

        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1" />

        <RadioButton
            android:id="@+id/radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2" />

        <RadioButton
            android:id="@+id/radioButton8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3" />

        <RadioButton
            android:id="@+id/radioButton9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="4" />

    </RadioGroup> 

介面设计

https://ithelp.ithome.com.tw/upload/images/20210907/201391368ls0H80xiq.png
首先拉出RadioButton并放入RadioGroup中,这里我用了两个Group,分别代表为票种和张数,并且设定RadioGroup的android:orientation=”horizontal”,预设为vertical,这里可以依自己的需要调整RadioButton的排列。

程序码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt1 = (Button) findViewById(R.id.bt1);

        bt1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TextView txv = (TextView) findViewById(R.id.txv);
                RadioGroup ticketType =
                        (RadioGroup) findViewById(R.id.ticketType);
                RadioGroup tickeNumber =
                        (RadioGroup) findViewById(R.id.ticketNumber);

                RadioButton type = (RadioButton)findViewById(
                        ticketType.getCheckedRadioButtonId());
                RadioButton number = (RadioButton)findViewById(
                        tickeNumber.getCheckedRadioButtonId());

                txv.setText("买"+type.getText()+" "+number.getText()+"张");
            }
        });
    }
}

这里Button的按纽事件与以前介绍的不同,是透过.setOnClickListener做到的,虽然程序码不同不过效果是相同的。
先取得分别Radiogroup的物件,再从中取得里面的RadioButton,不过这里就不一一宣告RadioButton的物件了,因为主要是需要被选择按钮的资讯,所以透过getCheckRadioButtonId()找到被选择的项目并宣告,就能达到取得正确被选择的资料。

成果

https://ithelp.ithome.com.tw/upload/images/20210907/20139136abneAu1sXN.png
RadioButton就讲到这里,谢谢大家。/images/emoticon/emoticon41.gif


<<:  Day 10 - Functional Programming 初探 (3) - 实战购物车流程

>>:  【第二十五天 - Floyd-Warshall 题目分析】

CLOUDWAYS 服务器方案评比 - linode / VULTR-HF / Digital Ocean-DP

在 CLOUDWAYS❐ 中,提供了5大云端主机供应商的方案☞ linode 、 VULTR 、 D...

Rust-流程控制-for

如果想印出1到100的数字,更常的做法是使用for回圈而不是while 例 for i in 1.....

Day21 ( 高级 ) 戳泡泡 ( 视讯侦测 )

戳泡泡 ( 视讯侦测 ) 教学原文参考:戳泡泡 ( 视讯侦测 ) 这篇文章会介绍,如何在 Scrat...

DAY 28 Image message(图片讯息)

图片讯息物件(Image message object) https://developers.li...

Day 17:专案03 - PTT 八卦版爬虫02 | session、post

昨天教到使用cookie让服务器记得我们曾经做过哪些事,但缺点就是每次Request都要加上cook...