android Button实现点击事件的三种方法
一、使用匿名内部类实现 onClickListener接口,通用;
二、让MainActivity实现onClickListener接口,这种方法适合于有多个组件时,这样用会更加的方便;
三、在XML文件中的相应组件中定义onClick方法,自定义的方法;
实现的源码:
package com.example.clickbutton; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; //此处为了用第二种方法所以在开始的Activity中实现了Onclicklistener接口; public class MainActivity extends Activity implements OnClickListener { private Button button,button2,button3,button4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button1); button2=(Button)findViewById(R.id.button2); button3=(Button)findViewById(R.id.button3); button4=(Button)findViewById(R.id.button4); button2.setOnClickListener(this);//第二种方式的button button3.setOnClickListener(this);//第二种方式的button // 第一种:使用匿名内部类: button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this , "这是第一个button", 1).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // 第二种:让MainActivity implements OnClickListener 接口,这样就可以如下写了: public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button2: Toast.makeText(MainActivity.this , "这是第二个button", 1).show(); break; case R.id.button3: Toast.makeText(MainActivity.this , "这是第三个button", 1).show(); break; default: break; } } // 第三种是用xml定义(绑定)一个onClickListener事件 public void showMessage(View v){ Toast.makeText(MainActivity.this, "第三种方法实现事件绑定的button", 1).show(); } }
第三种在XML中的组件代码:
<Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/button3" android:text="@string/button4" android:onClick="showMessage"/>