事件监听机制中由事件源,事件,事件监听器三类对象组成 处理流程如下: Step 1:为某个事件源(组件)设置一个监听器,用于监听用户操作 Step 2:用户的操作,触发了事件源的监听器 Step 3:生成了对应的事件对象 Step 4:将这个事件源对象作为参数传给事件监听器 step 5:事件监听器对事件对象进行判断,执行对应的事件处理器(对应事件的处理方法)
直接setXxxListener后,重写里面的方法即可; 通常是临时使用一次,复用性不高
btnshow = (Button) findViewById(R.id.btnshow);
btnshow.setOnClickListener(new View.OnClickListener(){
//重写点击事件的处理方法onClick()
@Override
public void onClick(View v){
//显示提示
Toast.makeText(getApplicationContext(),"你点击了按钮", Toast.LENGTH_SHORT).show();
}
});
2、使用内部类
btnshow.setOnClickListener(new BtnClickListener());
}
class BtnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "你点击了按钮", Toast.LENGTH_SHORT).show();
}
}
3、使用外部类
和外部类但是,但是不能外部类直接访问组件,所以需要通过构造函数传入组件。
//让Activity方法实现OnClickListener接口
public class MainActivity extends Activity implements OnClickListener{
private Button btnshow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnshow = (Button) findViewById(R.id.btnshow);
//直接写个this
btnshow.setOnClickListener(this);
}
//重写接口中的抽象方法
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "点击了按钮", Toast.LENGTH_SHORT).show();
}
}
直接让Activity继承OnClickListener,然后按钮直接监听this,并实现Activity的触发方法onClick。
标签中加上这个,myclick是对应函数名
android:onClick="myclick"
@Override
public void myClick(View v) {
Toast.makeText(getApplicationContext(), "点击了按钮", Toast.LENGTH_SHORT).show();
}
!评论内容需包含中文