Android EditText in Kotlin
EditText is used to get input from the user. EditText is commonly used in forms and login or registration screens. Following steps are used to create EditText in Kotlin:
- Add a EditText in activity_main.xml file.
- Add a Button in activity_main.xml file.
- Open MainActivity.kt file and set OnClickListener for the button to get the user input from EditText and show the input as Toast message.
Different attributes of EditText widgets –
XML Attributes | Description |
---|---|
android:id | Used to uniquely identify the control |
android:gravity | Used to specify how to align the text like left, right, center, top, etc. |
android:hint | Used to display the hint text when text is empty |
android:text | Used to set the text of the EditText |
android:textSize | Used to set size of the text. |
android:textColor | Used to set color of the text. |
android:textStyle | Used to set style of the text. For example, bold, italic, bolditalic etc. |
android:textAllCaps | Used this attribute to show the text in capital letters. |
android:width | It makes the TextView be exactly this many pixels wide. |
android:height | It makes the TextView be exactly this many pixels tall. |
android:maxWidth | Used to make the TextView be at most this many pixels wide. |
android:minWidth | Used to make the TextView be at least this many pixels wide. |
android:background | Used to set background to this View. |
android:backgroundTint | Used to set tint to the background of this view. |
android:clickable | Used to set true when you want to make this View clickable. Otherwise, set false. |
android:drawableBottom | Used to set drawable to bottom of the text in this view. |
android:drawableEnd | Used to set drawable to end of the text in this view. |
android:drawableLeft | Used to set drawable to left of the text in this view. |
android:drawablePadding | Used to set padding to drawable of the view. |
android:drawableRight | Used to set drawable to right of the text in this view. |
android:drawableStart | Used to set drawable to start of the text in this view. |
android:drawableTop | Used to set drawable to top of the text in this view. |
android:elevation | Used to set elevation to this view. |
activity_main.xml file
Step 1: Open activity_main.xml file and create an EditText using id editText.
html
<? xml version="1.0" encoding="utf-8"?> < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--EditText with id editText--> < EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:hint="Input" android:inputType="text"/> </ LinearLayout > |
Step 2: In activity_main.xml file add code to show a button. Final activity_main.xml file is
html
<? xml version="1.0" encoding="utf-8"?> < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--EditText with id editText--> < EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:hint="Input" android:inputType="text"/> <!--Button with id showInput--> < Button android:id="@+id/showInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="show" android:backgroundTint="@color/colorPrimary" android:textColor="@android:color/white" /> </ LinearLayout > |
Step 3: Open MainActivity.kt file and get the reference of Button and EditText defined in the layout file.
// finding the button val showButton = findViewById<Button>(R.id.showInput) // finding the edit text val editText = findViewById<EditText>(R.id.editText)
Setting the on click listener to the button
showButton.setOnClickListener { }
Getting the text entered by user
val text = editText.text
MainActivity.kt file
Finally the MainActivity.kt file is
java
package com.w3wiki.myfirstkotlinapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.EditText import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout.activity_main) // finding the button val showButton = findViewById<Button>(R.id.showInput) // finding the edit text val editText = findViewById<EditText>(R.id.editText) // Setting On Click Listener showButton.setOnClickListener { // Getting the user input val text = editText.text // Showing the user input Toast.makeText( this , text, Toast.LENGTH_SHORT).show() } } } |
AndroidManifest.xml file
xml
<? xml version="1.0" encoding="utf-8"?> < manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.w3wiki.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 > |