onclick事件的定义方法,分为三种,分别为在xml中进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口三种方式。
1.在xml中实现方法的绑定
<Button android:id="@+id/btn_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editText1" android:layout_marginTop="46dp" android:onClick="btnadd" android:text="+" />
在MainActivity中实现绑定的方法btnadd
public void btnadd(View v) { //绑定的btnadd方法 Toast.makeText(getApplicationContext(), "我是绑定方法", Toast.LENGTH_LONG).show(); }
2.NEW一个OnClickListenner()接口实例
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //关联控件 btn_add=(Button) findViewById(R.id.btn_add); btn_reduce=(Button) findViewById(R.id.btn_reduce); et=(EditText) findViewById(R.id.editText1); //第二种,接口实例化 btn_add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); }
上面这种是最为常见一种实现方法,为了让oncreat中的代码更清晰,我们也会是用另一种写法
btn_add.setOnClickListener(add);
实现add方法:
OnClickListener add =new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } };
3.实现OnClickListener接口
首先类要引用OnClickListener接口,并实现方法
public class MainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //关联控件 btn_add=(Button) findViewById(R.id.btn_add); btn_reduce=(Button) findViewById(R.id.btn_reduce); et=(EditText) findViewById(R.id.editText1); //第三种,使用接口 btn_add.setOnClickListener(this); btn_reduce.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.btn_add: break; case R.id.btn_reduce: break; } } }