📜  Kotlin 中的 RadioGroup

📅  最后修改于: 2022-05-13 01:54:35.653000             🧑  作者: Mango

Kotlin 中的 RadioGroup

Kotlin 编程语言的 RadioGroup 类用于创建一个包含多个 RadioButton 的容器。 RadioGroup 类有利于在其中放置一组单选按钮,因为该类为单选按钮添加了多排除范围功能。此功能可确保用户只能检查属于 RadioGroup 类的所有单选按钮中的一个。如果用户选中另一个单选按钮,RadioGroup 类将取消选中之前选中的单选按钮。当开发人员只想选择一个答案(例如询问用户的性别)时,此功能非常重要。

Kotlin 中 RadioGroup 类的类层次结构

Kotlin 中 RadioGroup 的类层次结构

RadioGroup 小部件的 XML 属性

XML AttributesDescription
android:idTo uniquely identify the RadioGroup
android:backgroundTo set a background colour
android:onClickA method to perform certain action when RadioGroup is clicked
android:onClickIt’s a name of the method to invoke when the radio button clicked.
android:visibilityUsed to control the visibility i.e., visible, invisible or gone
android:layout_widthTo set the width
android:layout_heightTo set the height
android:contentDescriptionTo give a brief description of the view
android:checkedButtonStores id of child radio button that needs to be checked by default within this radio group
android:orientationTo fix the orientation constant of the view

例子

在此示例中,将逐步演示如何创建 RadioGroup,它由 5 个 RadioButton 子项组成,它们要求用户选择 GeeksforGeeks 提供的课程。当用户选中其中一个 RadioButtons 并单击 Submit 按钮时,会出现一条显示所选选项的 toast 消息。

创建新项目

  1. 单击文件,然后单击新建 => 新建项目。
  2. 为项目模板选择“Empty Activity”。
  3. 选择语言为 Kotlin。
  4. 根据您的需要选择最低 SDK。

打开 activity_main.xml 文件

下面是用于添加 RadioGroup 及其 5 个 RadioButton 子项的activity_main.xml文件的代码。还添加了一个普通的提交按钮来接受和显示用户选择的响应。



  
    
  
    
  
        
  
        
  
        
  
        
  
        
    
  
    

打开 MainActivity.kt 文件

下面是MainActivity.kt文件的代码,用于访问 kotlin 文件中的 RadioGroup 小部件,并在用户选择单选按钮时显示适当的消息。

package com.example.sampleproject
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.RadioButton
import android.widget.RadioGroup
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
  
class MainActivity : AppCompatActivity() {
    var radioGroup: RadioGroup? = null
    lateinit var radioButton: RadioButton
    private lateinit var button: Button
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Display name of the Application
        title = "RadioGroup in Kotlin"
  
        // Assigning id of RadioGroup
        radioGroup = findViewById(R.id.radioGroup1)
  
        // Assigning id of Submit button
        button = findViewById(R.id.submitButton)
  
        // Actions to be performed 
        // when Submit button is clicked
        button.setOnClickListener {
  
            // Getting the checked radio button id 
            // from the radio group
            val selectedOption: Int = radioGroup!!.checkedRadioButtonId
  
            // Assigning id of the checked radio button
            radioButton = findViewById(selectedOption)
  
            // Displaying text of the checked radio button in the form of toast
            Toast.makeText(baseContext, radioButton.text, Toast.LENGTH_SHORT).show()
        }
    }
}

修改字符串.xml 文件

该文件中列出了活动中使用的所有字符串,从应用程序名称到各种 RadioButton 的选项。


    RadioGroup in Kotlin
    Choose a GfG course
    Amazon SDE Test Series
    Placement 100
    C++ STL
    CS Core Subjects
    DSA Self paced
    Submit

输出

RadioGroup 活动
RadioGroup 活动