CheckBox in Kotlin

A CheckBox is a special kind of button in Android which has two states either checked or unchecked. The Checkbox is a very common widget to be used in Android and a very good example is the “Remember me” option in any kind of Login activity of an app which asks the user to activate or deactivate that service. There are many other uses of the CheckBox widget like offering a list of options to the user to choose from and the options are mutually exclusive i.e., the user can select more than one option. This feature of the CheckBox makes it a better option to be used in designing multiple-choice questions application or survey application in android.

Class hierarchy of CheckBox class in Kotlin

Diagram of Class hierarchy of CheckBox class in Kotlin

XML attributes of CheckBox widget

XML Attributes Description
android:id Used to uniquely identify a CheckBox
android:checked To set the default state of a CheckBox as checked or unchechek
android:background To set the background color of a CheckBox
android:text Used to store a text inside the CheckBox
android:fontFamily To set the font of the text of the CheckBox
android:textSize To set the CheckBox text size
android:layout_width To set the CheckBox width
android:layout_height To set the CheckBox height
android:gravity Used to adjust the CheckBox text alignment
android:padding Used to adjust the left, right, top and bottom padding of the CheckBox

Example

This example demonstrates the steps involved in designing an activity that consists of 5 CheckBox and an additional submit button to display a toast message that user response has been recorded.

Note: Following steps are performed on Android Studio version 4.0

Create new project

  1. Click on File, then New => New Project.
  2. Choose “Empty Activity” for the project template.
  3. Select language as Kotlin.
  4. Select the minimum SDK as per your need.

Open activity_main.xml file

Below is the code for activity_main.xml file to add 5 CheckBox. A normal “submit” button is also added to display a toast message that user response has been recorded.



filter_none

edit
close

play_arrow

link
brightness_4
code

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#168BC34A"
    tools:context=".MainActivity" >
  
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/roboto"
        android:text="@string/Heading"
        android:textAlignment="center"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="36sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.17000002" />
  
    <LinearLayout
        android:id="@+id/checkBox_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:layout_constraintVertical_bias="0.18">
  
        <CheckBox
            android:id="@+id/checkBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/checkBox1_text"
            android:textSize="18sp"
            android:padding="7dp"/>
  
        <CheckBox
            android:id="@+id/checkBox2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/checkBox2_text"
            android:textSize="18sp"
            android:padding="7dp"/>
  
        <CheckBox
            android:id="@+id/checkBox3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/checkBox3_text"
            android:textSize="18sp"
            android:padding="7dp"/>
  
        <CheckBox
            android:id="@+id/checkBox4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/checkBox4_text"
            android:textSize="18sp"
            android:padding="7dp"/>
  
        <CheckBox
            android:id="@+id/checkBox5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/checkBox5_text"
            android:textSize="18sp"
            android:padding="7dp"/>
    </LinearLayout>
  
    <Button
        android:id="@+id/submitButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#AB4CAF50"
        android:fontFamily="@font/roboto"
        android:text="@string/submitButton"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/checkBox_container"
        app:layout_constraintVertical_bias="0.23000002" />
</androidx.constraintlayout.widget.ConstraintLayout>

chevron_right


Open MainActivity.kt file

Below is the code for MainActivity.kt file to access CheckBox widget in kotlin file and show a proper message whenever the submit button is clicked by the user.

filter_none

edit
close

play_arrow

link
brightness_4
code

package com.example.checkboxinkotlin
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Assigning id of the submit button
        val button : Button = findViewById(R.id.submitButton)
  
        // Actions to be performed
        // when Submit button is clicked
        button.setOnClickListener{
  
            // Display toast message
            Toast.makeText(applicationContext,
                "Your response has been recorded", Toast.LENGTH_LONG).show()
        }
    }
}

chevron_right


Modify strings.xml file

All the strings which are used in the activity, from the text view to the Checkbox texts are listed in this file.

filter_none

edit
close

play_arrow

link
brightness_4
code

<resources>
    <string name="app_name">CheckBox in Kotlin</string>
    <string name="Heading">Services provided by GeeksforGeeks</string>
    <string name="checkBox1">Coding contests</string>
    <string name="checkBox2_text">Civil Engineering Courses</string>
    <string name="checkBox1_text">Coding Contests</string>
    <string name="checkBox3_text">Computer Science Courses</string>
    <string name="checkBox4_text">Company specific coding questions</string>
    <string name="checkBox5_text">Download movies</string>
    <string name="submitButton">SUBMIT</string>
</resources>

chevron_right


AndroidManifest.xml file

Below is the code for AndroidManifest.xml file.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http:// schemas.android.com/apk/res/android"
    package="com.example.checkboxinkotlin">
  
    <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>

chevron_right


Output

Screenshot of CheckBox activity




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.