1. New OnClickListener in setOnClickListener’s parameter
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b = (Button) findViewById(R.id.button); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d("BG","1st way handling button click"); } }); } }
2. Inner class OnClickListener
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b = (Button) findViewById(R.id.button); b.setOnClickListener(buttonListener); } private View.OnClickListener buttonListener = new View.OnClickListener() { @Override public void onClick(View v) { Log.d("BG","2nd way handling button click"); } }; }
3. Implements OnClickListener interface & override onClick()
public class MainActivity extends Activity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b = (Button) findViewById(R.id.button); b.setOnClickListener(this); } @Override public void onClick(View view) { switch(view.getId()){ case R.id.button: Log.d("BG","3rd way handling button click"); break; } } }
4. Assign method at onClick attribute in layout file.
Activity class
public class MainActivity extends Activity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void buttonClick(View view) { Log.d("BG","4th way handling button click"); } }
layout file
<Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:onClick="buttonClick" />