监听事件
Button基本使用方法
Button和imageButton都有一个onclick事件
通过自身的setOnclickListener(OnClickListener)方法添加点击事件
通过点击事件的监听可以实现点击按钮之后产生的动作
三种
1 匿名内部类
2 独立类
3 实现接口的方式来实现
匿名内部类
- 初始化当前所需要的控件
首先声明一个Button的对象然后对其赋值
private Button loginButton;
findViewById(R.id.控件的id)返回的是一个View的对象,View是所有控件的父类,然后再对其进行格式转换,这样就可以访问到当前的控件了
loginButton = (Button)findViewById(R.id.控件的id)
- 设置button的***
通过***实现事件点击的效果
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
可以在代码里写入事件点击的效果
外部类
首先也是初始化控件
通过***去实现外部类
onClickListener是一个接口,不能继承
所以我们要去实现onClickListener
外部类的写法
class myOnclickListener implements View.OnClickListener {
@Override
public void onClick(View v){
Log.i("tag","已发送");
}
}
loginbutton2.setOnClickListener(new myOnclickListener(){
@Override
public void onClick(View v) {
super.onClick(v);//调用父类的onClick事件
Toast.makeText(MainActivity.this,"按钮被点击",1).show();//通过类名.this来调用
}
});
}
将来有多个按钮都要执行一个复杂的动作,则需要通过外部类的写法
接口
首先在activity这个类上去实现onClickListener这个接口
会在这个类生成对应的onlick方法
public class First extends AppCompatActivity implements View.OnClickListener
在onclick方法里写上你想要做出点击之后的效果
@Override
public void onClick(View v) {
Log.i("tag","annou");
Toast.makeText(First.this, "按钮被点击了", 1).show();
}
setonclicklistener直接是this 当前onclick事件就绑定在上面了
loginbutton.setOnClickListener(this);
Toast一定要注意.show();