public class


extends TextView
   ↳ android.view.View
     ↳ android.widget.TextView
       ↳ android.widget.Button
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Represents a push-button widget. Push-buttons can be pressed, or clicked, by the user to perform an action.

A typical use of a push-button in an activity would be the following:

 public class MyActivity extends Activity {
     protected void onCreate(Bundle icicle) {


         final Button button = (Button) findViewById(;
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click

However, instead of applying an OnClickListener to the button in your activity, you can assign a method to your button in the XML layout, using the android:onClick attribute. For example:

     android:onClick="selfDestruct" />

Now, when a user clicks the button, the Android system calls the activity's selfDestruct(View) method. In order for this to work, the method must be public and accept a View as its only parameter. For example:

 public void selfDestruct(View view) {
     // Kabloey

The View passed into the method is a reference to the widget that was clicked.

Button style

Every Button is styled using the system's default button background, which is often different from one device to another and from one version of the platform to another. If you're not satisfied with the default button style and want to customize it to match the design of your application, then you can replace the button's background image with a state list drawable. A state list drawable is a drawable resource defined in XML that changes its image based on the current state of the button. Once you've defined a state list drawable in XML, you can apply it to your Button with the android:background attribute. For more information and an example, see State List Drawable.

Also see the Form Stuff tutorial for an example implementation of a button.

XML attributes

See Button Attributes, TextView Attributes, View Attributes


Inherited XML Attributes
From class android.widget.TextView
From class android.view.View
Inherited Constants
From class android.view.View
Public Constructors
Button(Context context)
Button(Context context, AttributeSet attrs)
Button(Context context, AttributeSet attrs, int defStyle)
Inherited Methods
From class android.widget.TextView
From class android.view.View
From class java.lang.Object
From interface
From interface android.view.KeyEvent.Callback
From interface android.view.ViewTreeObserver.OnPreDrawListener
From interface android.view.accessibility.AccessibilityEventSource

Public Constructors

public Button (Context context)

Since: API Level 1

public Button (Context context, AttributeSet attrs)

Since: API Level 1

public Button (Context context, AttributeSet attrs, int defStyle)

Since: API Level 1