📜  科特林的Dynamic RadioGroup

📅  最后修改于: 2021-05-10 17:32:01             🧑  作者: Mango

Android中, RadioGroup用于设置单选按钮。如果在RadioGroup中选择了一个单选按钮,则会自动取消选择所有其他单选按钮。

在本文中,我们将讨论如何以编程方式在Kotlin中创建RadioGroup。

让我们首先在Android Studio中创建一个项目。为此,请按照以下说明进行操作:

  • 单击文件,然后依次单击新建和新建项目,并根据需要命名
  • 然后,选择Kotlin语言支持,然后单击下一步按钮。
  • 选择最低的SDK,无论您需要什么
  • 选择清空活动,然后单击完成

之后,我们需要设计布局。为此,我们需要使用XML文件。转到应用>资源>布局,然后粘贴以下代码:

修改activity_main.xml文件



  

MainActivity.kt

下一步是对我们的RadioGroup进行编码。打开app / src / main / Java/yourPackageName/MainActivity.kt并粘贴以下代码:

package com.geeksforgeeks.myfirstKotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.RadioButton
import android.widget.RadioGroup
import android.widget.RelativeLayout
import android.widget.Toast
   
class MainActivity : AppCompatActivity() {
   
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
   
        val layout = findViewById(R.id.layout)
   
        // Create RadioButton Dynamically
        val geek1 = RadioButton(this)
        //setting height and width
        geek1.layoutParams = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        geek1.setText(R.string.java) //setting text of first radio button
        geek1.id = 0
   
        val geek2 = RadioButton(this)
        geek2.layoutParams = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        geek2.setText(R.string.python) ////setting text of second radio button
        geek2.id = 1
   
        // Create RadioGroup Dynamically
        val radioGroup = RadioGroup(this)
        val params = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        params.setMargins(40, 0, 0, 0)
        radioGroup.layoutParams = params
   
        //adding button to the radio group container
        radioGroup.addView(geek1)
        radioGroup.addView(geek2)
        layout.addView(radioGroup)
   
        radioGroup.setOnCheckedChangeListener { group, checkedId ->
            var text = getString(R.string.Chose)
            text += " " + getString(if (checkedId == 0) {
                R.string.java
            } else {
                R.string.python
            })
            Toast.makeText(applicationContext, text, Toast.LENGTH_SHORT).show()
        }
   
    }
}

上面的代码仍然会产生一些错误,因为我们使用了一些在另一个文件中声明的字符串来解决这些问题,因此将以下代码片段添加到app / res / values / 字符串.xml中


    My Application
    Java
    Python
    You selected:
  

AndroidManifest.xml



   
    
        
            
                
   
                
            
        
    
   

作为仿真器运行:

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