In this session will learn to create Button.
Create new project in eclipse (Android-First-Programm).
Click on res folder and then layout, now open required xml where you want to use button.
We can create any control like button using both layouts
1) Graphical Layout
2) Xml Layout
1) Using “Graphical Layout” Drag button from “Form Widgets”.
Double click on button and set its properties in xml layout.
2) In Xml Layout write this code to create button.
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />
Now by reference we can use button in code and can use its events.
Open Activity (.java file) to use that button.
Activity is located in src folder -> package and choose activity where you want to use button.
To access button from xml we use its reference using this code.
Button btn=(Button) findViewById(R.id.button1);
Using “findViewById();” we can access reference of any control like button from xml layout.
“button1” is id of that button that we want to use and it must be exist in xml layout that we have assigned in “setContentView(R.layout.main);”. So complete code will be
public class AndroidButtonActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn=(Button) findViewById(R.id.button1); }
button1 is exists in main layout. We can set reference of layout using “setContentView(R.layout.main);”
Button click event:
To set buttons click event use this code.
public class AndroidButtonActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn=(Button) findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub } }); }
To check is button is clicked show message using Toast.
public class AndroidButtonActivity extends Activity { /** Called when the activity is first created. */ Context mContext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mContext=this; Button btn=(Button) findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(mContext, "button1 is clicked", Toast.LENGTH_SHORT).show(); } }); } }
Other way to set click event in button is, we can use function name in xml.
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:onClick="button1Click" />
And define “button1Click” function in activity, without using button reference.
For your understanding I make two buttons and use button click events by two types.
See complete xml or java files.
Main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="button2Click" android:text="Button2" /> </LinearLayout>
AndroidButtonActivity.jave
package com.itPearl.androidButton; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class AndroidButtonActivity extends Activity { /** Called when the activity is first created. */ Context mContext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mContext=this; Button btn=(Button) findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(mContext, "button1 is clicked", Toast.LENGTH_SHORT).show(); } }); } public void button2Click(View view){ Toast.makeText(mContext, "button2 is clicked", Toast.LENGTH_SHORT).show(); } }