Open In App

How to Change the Background Color After Clicking the Button in Android?

Last Updated : 05 Dec, 2022
Like Article

In this article, we will see how we can change the background of the screen by clicking a button. For this, we will be using the onClick() method. When we click on the button the onClick function is called. To set the click handler event for the button we need to define the android:onClick attribute in the XML file. We can also use onClickListener() in the Java file to call this function programmatically when the button is clicked. A sample GIF is given below to get an idea about what we are going to do in this article. Note that we are going to implement this project using the Java language. 

Change the Background Color after Clicking the Button in Android Sample GIF

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. Note that select Java as the programming language.

Step 2: Define Colors

It is always better to pre-define strings and colors instead of hard coding them hence we will define the colors.

  • Open the colors.xml file by navigating to the app -> res -> values -> colors.xml
  • Create a color tag inside the resources tag with a name and set a color with its hex code.

Add the below lines inside the colors.xml file.


<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="green">#0F9D58</color>
<color name="cool">#188FCF</color>
<color name="warm">#F1D416</color>

Step 3: Working with the activity_main.xml file

Go to the activity_main.xml file and refer to the following code. Below is the code for the activity_main.xml file.


<?xml version="1.0" encoding="utf-8"?>
        android:text="What would you like?"
        android:textStyle="bold" />
            android:textSize="25dp" />
            android:textSize="25dp" />

Step 4: Working with the file 

  • Set onClick() attribute with a function name android:onClick=”changeBackground”,
  • After that in your activity that hosts this layout create a function with the same name, or
  • You can instead of using the onClick() attribute directly set the onClickListener() and code its function
  • Inside the function use setBackgroundResource(R.color.button_color) function, this will set the background with color button_color.

Below is the code for the file. Comments are added inside the code to understand the code in more detail. 


import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        Button button1, button2;
        final RelativeLayout relativeLayout;
        // set button 1 with its id
        button1 = findViewById(;
        // set button 2 with its id
        button2 = findViewById(;
        // set relative layout with its id
        relativeLayout = findViewById(;
        // onClick function for button 1
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                // set the color to relative layout
        // onClick function for button 2
        button2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                // set the color to relative layout



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads