1.定义内部类,实现点击事件,使用时将内部类对象传入事件源的setOnClickListener()方法中
private class MyClickListener implements View.OnClickListener{ @Override public void onClick(View v) { // 功能代码 } }
2.使用匿名内部类的方式实现点击事件
setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //功能代码 } });
3.在绑定点击事件中将当前的Activity对象传入,setOnClickListener(this),this代表当前控件所在Activity对象的引用,使用此方式,需要当前Activity实现View.OnClickListener接口,在onClick方法中,通过判断事件源(控件)的Id,来决定执行什么操作.
public class MainActivity extends ActionBarActivity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button but = (Button)this.findViewById(R.id.bt_dial);
but.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.but: //功能代码 break; default: break; } } }
4.在Activity布局文件中,给事件源绑定onclick事件,并在Activity中提供事件的实现
activity_xxx_xml中,添加android:onClick="buttonClicked",其中buttonClicked为点击事件的实现
<Button android:onClick="buttonClicked" android:id="@+id/butl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮" />
Activity.java文件中,添加如下代码,注意点击事件的访问权限须为public,且形参为View类型
public void buttonClicked(View v){ if(v.getId()==R.id.but){ //功能代码 } }
时间: 2024-09-30 05:18:08