事件监听器的几种配置方法

来源:互联网 发布:淘宝零信誉店铺转让 编辑:程序博客网 时间:2024/06/05 19:46
当用户按下一个按钮或者单击某个菜单项时,这些动作就会激发一个相应的事件,该事件就会触发事件源上注册的事件监听器(特殊的Java对象),事件监听器调用相应的事件处理器(事件监听器里的实例方法)来做出相应的响应。以XML文件中,需要监听的控件为button1&button2,为例。一、新建一个外部类实现接口
public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //给button按钮注册事件监听器,对象为新创建的MyListener类对象        button1.setOnClickListener(new MyListener());    }    //定义一个单击事件的监听器(创建一个外部类,即View.OnClickListener的实现类)    class MyListener implements View.OnClickListener{    //添加要实现接口的抽象方法        @Override        public void onClick(View v){            switch (v.getId()){                case R.id.button1:                //TODO button1要实现的方法                break;                case  R.id.button2:                //TODO button2要实现的方法                break;            }        }    }}   

二、匿名内部类实现接口监听方法

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //给button按钮注册事件监听器,对象为OnClickListener父类对象        button1.setOnClickListener(new OnClickListener(){            //添加要实现接口的抽象方法            @Override        public void onClick(View v){            switch (v.getId()){                case  R.id.button1:                //TODO button1要实现的方法                break;                case button2:                //TODO  R.id.button2要实现的方法                break;            }        }        });    }}   

三、自身MAinActivity类直接实现OnClickListener接口

//自身类直接实现OnClickListener接口public class MainActivity extends Activity implements OnClickListener{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //给button按钮注册事件监听器,对象为当前类对象        button1.setOnClickListener(this);    }    //添加要实现接口的抽象方法    @Override    public void onClick(View v){        switch (v.getId()){            case  R.id.button1:            //TODO button1要实现的方法            break;            case  R.id.button2:            //TODO button2要实现的方法            break;        }    }}   
原创粉丝点击