Android Button Onclick Android Button Onclick android android

Android Button Onclick


If you write like this in Button tag in xml file : android:onClick="setLogin" then

Do like this:

<?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" ><Button    android:id="@+id/button1"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="@string/btn"    android:onClick="onClickBtn" /></LinearLayout>

and in Code part:

public class StartUpActivity extends Activity {    public void onCreate(Bundle savedInstanceState)     {       super.onCreate(savedInstanceState);       setContentView(R.layout.main);        }    public void onClickBtn(View v)    {        Toast.makeText(this, "Clicked on Button", Toast.LENGTH_LONG).show();    } }

and no need all this:

 Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() {    public void onClick(View v) {        // TODO Auto-generated method stub    } });

Check it once;


You need to make the same method name both in layout XML and java code.

If you use android:onClick="setLogin" then you need to make a method with the same name, setLogin:

// Please be noted that you need to add the "View v" parameterpublic void setLogin(View v) {}

ADVICE:
Do not mix layout with code by using android:onClick tag in your XML. Instead, move the click method to your class with OnClickListener method like:

Button button = (Button) findViewById(R.id.button1);button.setOnClickListener(new OnClickListener() {  public void onClick(View v) {    // TODO Auto-generated method stub  } });

Make a layout just for layout and no more. It will save your precious time when you need to refactoring for Supporting Multiple Screens.


Method 1:

public void onClick(View v) {          Intent i = new Intent(currentActivity.this, SecondActivity.class);         startActivty(i);        }

Method 2:

Button button = (Button) findViewById(R.id.mybutton); button.setOnClickListener(new OnClickListener() {    public void onClick(View v) {         Toast.makeText(this, "Button Clicked", Toast.LENGTH_LONG).show();    } });