首页 > 代码库 > Android基础--点击事件的四种写法

Android基础--点击事件的四种写法

 

 

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){            //功能代码        }    }

Android基础--点击事件的四种写法