最常用的方法——匿名内部类
适用于没有复用性,一次性使用。项目较大时,方便代码的管理
Button.setOnClickListener(new View.onClickListener(){
@Override
public void onClick(View v){
//处理点击的代码
}
});
内部类
适用于监听器具有复用性(当前类中,好几个地方用到监听器,提取出来,变成一个内部类,用的时候new一个内部类就行)
Button.setOnClickListener(listener);
Class listener implements onClickListener{
@Override
public void onClick(View v){
//处理点击的代码
}
}
Activity实现onClickListener接口
用于按钮较多,但是监听事件处理的代码不多时
public class MainActivity extends Activity implements OnClickListener{
Button.setOnClickListener(this);
@Override
public void onClick(View v){
switch(v.getId()){
case R.id.button:
// 处理事件的代码
break;
default:
break;
}
}
}
控件的onClick属性
设置点击事件的响应方法名android:onClick=“方法名”
缺点:当类的代码较多,方法和内部类较多时,代码管理不方便
优点:屏蔽所有的内部机制,不需要掌握回调机机制,学习测试阶段用(程序规模很小)
1.在View中添加点击事件
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click" //此处为Button添加onClick事件
android:text="click">
2.在对应的Activity中定义方法
public void cLick(View v){
//处理事件的代码
}