Dynamic CheckedTextView in Kotlin
CheckedTextView is used to implement checkable interface where one can tick or check the needed or required items and leave out the rest.
In this article, we will be discussing how to make a CheckedTextView dynamically or programmatically.
The first step is to make or create a project in Android Studio. Here, we will be creating a project named DynamicCheckedTextView.
For creating a new project:
- Click on File, then New => New Project
- Then, check Include Kotlin Support and click next button.
- Select minimum SDK, whatever you need.
- Select Empty activity and then click finish.
Now, we need to modify our layout. For doing so : Go to app > res > layout and paste the following code:
Modify the activity_main.xml file
<?xml version= "1.0" encoding= "utf-8" ?> <RelativeLayout android:id= "@+id/relativeLayout" android:layout_width= "match_parent" android:layout_height= "match_parent" tools:context= ".MainActivity" > </RelativeLayout> |
Next step is to add the strings which will be displayed when we check or uncheck our CheckedTextView.
Go to res/values/strings.xml and add the following lines.
<resources> <string name= "app_name" >DynamicCheckedTextView</string> <string name= "checked" >checked</string> <string name= "unchecked" >unchecked</string> <string name= "pre_msg" >TextView is</string> </resources> |
Use CheckedTextView Code in MainActivity.kt file
The final step is to code our CheckedTextView. Open 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<RelativeLayout>(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 file
<?xml version= "1.0" encoding= "utf-8" ?> <manifest xmlns:android= "http://schemas.android.com/apk/res/android" package = "com.geeksforgeeks.myfirstkotlinapp" > <application android:allowBackup= "true" android:icon= "@mipmap/ic_launcher" android:label= "@string/app_name" android:roundIcon= "@mipmap/ic_launcher_round" android:supportsRtl= "true" android:theme= "@style/AppTheme" > <activity android:name= ".MainActivity" > <intent-filter> <action android:name= "android.intent.action.MAIN" /> <category android:name= "android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> |
Run as Emulator:


Please Login to comment...