Skip to content
Coding Fanatic
  • Android Development
  • News and Reviews
  • Road2Pro
  • Tutorials
  • Services
  • About

How to Add a Clickable Button, 41/100 Days of…

  • August 18, 2019August 19, 2019
  • by Richard Clarke

Buttons are a great way to display interactive options for users. Today, I show you step by step how to add them to your apps.

In this tutorial, I show you how to add clickable buttons to your Android applications. You can find a video of this at the bottom of the page, code snippets throughout the page, and a link to my source code here.

NOTE: Remember to click Apply Changes in the Android Studio toolbar to update your app! 

Beginners: You can download this project from the link above and open it in Android Studio while you follow along with the video.
Advanced: I’ve included steps throughout the page along with code snippets. Feel free to use the video as a reference as well.

Requirements

  • Android Studio and a newly created project with an empty Activity
  • An Android Virtual Device
  • BONUS: An IDE of your preference if you don’t want to use Android Studio to edit your code

Step 1: Style the layout with two Buttons. You can update your activity_main.xml using the code below.

  • Change your layout to a LinearLayout
  • Set the LinearLayout gravity to “center” and your orientation to “vertical”
  • Add two Buttons with the text “Change to RED” and “Change to BLUE”
  • Space the Buttons out using blank, weighted TextViews
  • Add ids to both Buttons and your LinearLayout. This will allow you to access them from the MainActivity.java file.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:gravity="center"
    android:id="@+id/myLayout"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_width="wrap_content" />

    <Button
        android:id="@+id/redButton"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Change to RED" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:layout_width="wrap_content"/>

    <Button
        android:id="@+id/blueButton"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Change to BLUE" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:layout_width="wrap_content"/>

</LinearLayout>

 

Step 2: Import these additional classes needed to make changes within the app. See the snippet after Step 5 for the entire MainActivity.java file.

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

 

Step 3: Declare the Button objects and LinearLayout object within the class before overriding the onCreate() method. See the snippet after Step 5 for the entire MainActivity.java file.

Button buttonRed, buttonBlue;
LinearLayout layout;

 

Step 4: Instantiate the Button objects and LinearLayout object within the overridden onCreate() method. See the snippet after Step 5 for the entire MainActivity.java file.

buttonRed = findViewById(R.id.redButton);
buttonBlue = findViewById(R.id.blueButton);
layout = findViewById(R.id.myLayout);

 

Step 5: Set onClickListeners to change the background when the buttons are clicked. You can update your MainActivity.java file using the code below.

package com.example.clickingviews;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    Button buttonRed, buttonBlue;
    LinearLayout layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        buttonRed = findViewById(R.id.redButton);
        buttonBlue = findViewById(R.id.blueButton);
        layout = findViewById(R.id.myLayout);

        buttonRed.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick (View v){
                layout.setBackgroundColor(Color.RED);
            }
        });

        buttonBlue.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick (View v){
                layout.setBackgroundColor(Color.BLUE);
            }
        });


    }
}

 

To see this in action, watch the YouTube video below.

Join the mailing list to see updates like this every week!
Coding Fanatic

 

Related

How to Create a Custom ActionBar, 40/100 Days of Code
Why TextViews Are Clickable, 42/100 Days of Code
Richard Clarke
Richard is currently a developer using Java and Android Studio to build custom applications for Android. Richard tutored in mathematics at Montgomery College, and worked in Information Technology before entering the Software Development industry as a Quality Engineer.
100daysofcode Android Java Tutorial

Related articles

Your New Favorite Stopwatch App!…
Two for Two BABY! 7…
…But the App is for…
Play Store Blues – 5…
Top 4 Tips for Android…
No Dice – 3 of…

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Join the mailing list!

This field is required.

Check your inbox or spam folder to confirm your subscription.

Follow me on social media!

  • GitHub
  • YouTube
  • X
  • Instagram
  • LinkedIn
My Tweets

Join the mailing list!

This field is required.

Check your inbox or spam folder to confirm your subscription.

Follow me on social media!

  • X
  • GitHub
  • LinkedIn
  • YouTube

Archives

Theme by Colorlib Powered by WordPress