监听事件

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();