📜  Kotlin中的Dynamic RadioButton

📅  最后修改于: 2021-05-13 15:02:36             🧑  作者: Mango

Android单选按钮是双向状态按钮,可以选中或取消选中。另外,它的工作方式与Checkbox相同,除了单选按钮一旦被选中就不允许取消选中。

通常,我们使用RadioButton控件允许用户从多个选项中选择一个选项。

默认情况下,RadioButton处于OFF(Unchecked)状态,但是我们可以使用android:checked属性更改RadioButton的默认状态。

为了创建一个单选按钮,首先我们需要创建一个项目。我们将其命名为DynamicRadioButton

  • 单击文件,然后单击新建=>新建项目
  • 然后,选中“包括Kotlin支持”,然后单击“下一步”按钮。
  • 选择最低的SDK,无论您需要什么。
  • 选择清空活动,然后单击完成

修改activity_main.xml文件

首先,在Linearlayout中定义RadioGroup并访问Kotlin文件。



  
    
    

上面的代码仍然会产生一些错误,要解决这些错误,请在app / res / values / 字符串.xml中添加以下代码段


    DynamicRadioButton
    Black
    White
    Blue
    You selected:
  

MainActivity.kt文件

在这里,我们为颜色定义了三个单选按钮并设置了它们的属性。

val radioButton1 = RadioButton(this)

然后,使用以下代码将它们用于RadioGroup:

radioGroup.addView(radioButton1)
radioGroup.addView(radioButton2)
radioGroup.addView(radioButton3)
package com.geeksforgeeks.myfirstkotlinapp
import android.annotation.SuppressLint
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RadioButton
import android.widget.RadioGroup
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    @SuppressLint("ResourceType")
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        val linearLayout = findViewById(R.id.container)
  
        // Create RadioButton programmatically
        val radioButton1 = RadioButton(this)
        radioButton1.layoutParams= LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
            radioButton1.setText("Black")
        radioButton1.id = 1
  
        val radioButton2 = RadioButton(this)
        radioButton2.layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
            radioButton2.setText("White")
        radioButton2.id = 2
  
        val radioButton3 = RadioButton(this)
        radioButton3.layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
            radioButton3.setText("Blue")
        radioButton3.id = 3
  
        val radioGroup = findViewById(R.id.radioGroup)
        if (radioGroup != null)
        {
        radioGroup.addView(radioButton1)
        radioGroup.addView(radioButton2)
        radioGroup.addView(radioButton3)
  
            radioGroup.setOnCheckedChangeListener { group, checkedId ->
                var string = getString(R.string.you_selected)
                string += " " + getString(
                    if (checkedId == 1) R.string.black
                    else if(checkedId == 2 ) R.string.white
                    else R.string.blue )
            Toast.makeText(applicationContext, string, Toast.LENGTH_SHORT).show()
           }
        }
    }
}

AndroidManifest.xml文件



  

    
        
            
  
            
        
    

  

作为仿真器运行以输出:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!