Open In App

How to Build a Palindrome Checker App in Android Studio?

Last Updated : 03 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

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:



Next Article

Similar Reads