How to Build a Palindrome Checker App in Android Studio?
Last Updated : 03 Apr, 2025
In this article, we will be building a Palindrome Checker android app in Android Studio using Java/Kotlin and XML. The app will check whether the entered word is Palindrome or not, if the entered word is a Palindrome then a toast will be displayed having the message "Yes, it's a palindrome" otherwise Toast's message will be "No, it's not a palindrome".
Step by Step Implementation
Step 1: Create a New Project
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio.
Step 2: Working with the activity_main.xml file
This file contains an EditText view which takes the input from the user, and a Button view, on clicking which the app will check whether the entered word is Palindrome or not. Below is the code for the activity_main.xml file.
activity_main.xml:
XML <?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:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:id="@+id/editText" style="@style/Widget.Material3.Button.OutlinedButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="Enter a word" android:textColor="@color/black" android:textSize="24sp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:text="Check" android:textSize="25sp" /> </LinearLayout>
Step 3: Working with the MainActivity file
Inside the class MainActivity, we will create a function "isPalindrome()" which will take a string value as a parameter and returns a Boolean value, it will return true if the string is Palindrome and if the string is not a Palindrome it will return false. Now, inside the onCreate function, we will call a setOnClickListener method on button, inside it, we pass the text value of editText to "isPalindrome()" function as an argument, if the returned value is true, we will display a Toast having message "Yes, it's a palindrome" and if the returned value is False, we will display a Toast having the message "No, it's not a palindrome".
Below is the code for the MainActivity file.
MainActivity.java package org.geeksforgeeks.demo; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText = findViewById(R.id.editText); Button button = findViewById(R.id.button); button.setOnClickListener(v -> { String text = editText.getText().toString(); if (isPalindrome(text)) { Toast.makeText(MainActivity.this, "Yes, it's a palindrome", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "No, it's not a palindrome", Toast.LENGTH_SHORT).show(); } }); } private boolean isPalindrome(String text) { String reverseString = new StringBuilder(text).reverse().toString(); return text.equalsIgnoreCase(reverseString); } }
MainActivity.kt package org.geeksforgeeks.demo import android.os.Bundle import android.widget.Button import android.widget.EditText import android.widget.Toast import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val editText: EditText = findViewById(R.id.editText) val button: Button = findViewById(R.id.button) button.setOnClickListener { val text = editText.text.toString() if (isPalindrome(text)) { Toast.makeText(this, "Yes, it's a palindrome", Toast.LENGTH_SHORT).show() } else { Toast.makeText(this, "No, it's not a palindrome", Toast.LENGTH_SHORT).show() } } } private fun isPalindrome(text: String): Boolean { val reverseString = text.reversed() return text.equals(reverseString, ignoreCase = true) } }
Output: