📜  Kotlin中的动态CheckedTextView

📅  最后修改于: 2021-05-09 17:25:37             🧑  作者: Mango

CheckedTextView用于实现可检查的界面,在其中可以勾选或检查所需或必需的项目,而忽略其余的项目。
在本文中,我们将讨论如何动态或以编程方式制作CheckedTextView。

第一步是在Android Studio中创建或创建一个项目。在这里,我们将创建一个名为DynamicCheckedTextView的项目。
要创建一个新项目:

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

现在,我们需要修改布局。为此,请执行以下操作:转到app > res > layout,然后粘贴以下代码:

修改activity_main.xml文件



  

下一步是添加将在我们选中或取消选中CheckedTextView时显示的字符串。
转至res / values /字符串.xml并添加以下行。


    DynamicCheckedTextView
    checked
    unchecked
    TextView is

在MainActivity.kt文件中使用CheckedTextView代码

最后一步是对我们的CheckedTextView进行编码。打开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.CheckedTextView
import android.widget.RelativeLayout
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //getting our layout
        val relativeLayout = findViewById(R.id.relativeLayout)
        //using checktextview
        val checkedTextView = CheckedTextView(this)
        checkedTextView.layoutParams = RelativeLayout.
            LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        //using our strings.xml to set text
        checkedTextView.setText(R.string.app_name)
        //initially the checkbox in unchecked
        checkedTextView.isChecked = false
        checkedTextView.setCheckMarkDrawable(android.R.drawable.
            checkbox_off_background)
  
        //Onclick event for checkbox
        checkedTextView.setOnClickListener {
            checkedTextView.isChecked = !checkedTextView.isChecked
            checkedTextView.setCheckMarkDrawable(if (checkedTextView.isChecked)
                android.R.drawable.checkbox_on_background 
                else android.R.drawable.checkbox_off_background)
  
            //using our strings.xml setting the starting message of the toast
            val message = getString(R.string.pre_msg) + " " + 
                    if (checkedTextView.isChecked)
                getString(R.string.checked) 
                    else getString(R.string.unchecked)
            Toast.makeText(this@MainActivity, message, Toast.LENGTH_LONG).show()
        }
  
        // Add Checkbox to RelativeLayout
        relativeLayout?.addView(checkedTextView)
  
    }
}

AndroidManifest.xml文件



  
    
        
            
                
  
                
            
        
    
  

作为仿真器运行:

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