5 Ways to handle button click event in android
When writing software very rarely is there only one way to do this things,this is true when wiring up View events,five methods are shown here.
- 1.Using Member Class
- public class main extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //attach an instance of HandleClick to the Button
- findViewById(R.id.button1).setOnClickListener(new HandleClick());
- }
- private class HandleClick implements OnClickListener{
- public void onClick(View arg0) {
- Button btn = (Button)arg0; //cast view to a button
- // get a reference to the TextView
- TextView tv = (TextView) findViewById(R.id.textview1);
- // update the TextView text
- tv.setText("You pressed " + btn.getText());
- }
- }
- }
- 2. Using Interface Type
- public class main extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //use the handleClick variable to attach the event listener
- findViewById(R.id.button1).setOnClickListener(handleClick);
- }
- private OnClickListener handleClick = new OnClickListener(){
- public void onClick(View arg0) {
- Button btn = (Button)arg0;
- TextView tv = (TextView) findViewById(R.id.textview1);
- tv.setText("You pressed " + btn.getText());
- }
- };
- }
- 3. Using Anonymous Inner Class
- public class main extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- findViewById(R.id.button1).setOnClickListener(new OnClickListener(){
- public void onClick(View arg0) {
- Button btn = (Button)arg0;
- TextView tv = (TextView) findViewById(R.id.textview1);
- tv.setText("You pressed " + btn.getText());
- }
- });
- }
- }
- 4. Implementation in Activity
- public class main extends Activity implements OnClickListener{
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- findViewById(R.id.button1).setOnClickListener(this);
- }
- public void onClick(View arg0) {
- Button btn = (Button)arg0;
- TextView tv = (TextView) findViewById(R.id.textview1);
- tv.setText("You pressed " + btn.getText());
- }
- }
- 5. Using Attribute in View Layout for OnClick Events
- public class main extends Activity{
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- public void HandleClick(View arg0) {
- Button btn = (Button)arg0;
- TextView tv = (TextView) findViewById(R.id.textview1);
- tv.setText("You pressed " + btn.getText());
- }
- }
- <Button android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Button 1"
- android:onClick="HandleClick"/>
Comments
Post a Comment