Android增加监听的三种实现方式

在Android中,为一个按钮增加监听的方式有三种

1.匿名内部类

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载布局文件
        setContentView(R.layout.activity_main);
        //获得布局中的按钮
        btn = (Button) findViewById(R.id.btn);
        //为按钮增加匿名内部类监听
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                //打印提示信息
                Toast.makeText(MainActivity.this, "匿名内部类实现监听", Toast.LENGTH_SHORT).show();
            }
        });
    }

2.内部类

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载布局文件
        setContentView(R.layout.activity_main);
        //获得布局中的按钮
        btn = (Button) findViewById(R.id.btn);
        //内部类实现点击监听
        btn.setOnClickListener(new MyClickListener());
    }
    //定义一个内部类
    class  MyClickListener implements OnClickListener{

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Toast.makeText(MainActivity.this, "内部类实现监听", Toast.LENGTH_SHORT).show();
        }

    }

3.实现接口

定义的Activity实现OnClickListener接口,并重新onClick()方法

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载布局文件
        setContentView(R.layout.activity_main);
        //获得布局中的按钮
        btn = (Button) findViewById(R.id.btn);
        //增加监听,传递this对象,this代表的是被点击的控件
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        // TODO Auto-generated method stub
        switch (view.getId()) {
        case R.id.btn:
            Toast.makeText(MainActivity.this, "实现接口实现监听", Toast.LENGTH_SHORT).show();
            break;
        }
    }
时间: 2024-10-21 09:25:49

Android增加监听的三种实现方式的相关文章

事件监听的三种方法

事件监听的三种方法: addTarget --用于监听一些点击.值改变等事件 代理       -- 监听一些开始.结束.选中某行等一些改变控制属性的一些事件 通知:上面都不行考虑使用通知 通知使用注意:只要监听通知就要移除通知,否则控制器销毁后,通知发送时就会找不到对象导致程序崩溃 文本框事件的监听: textfied代理只能监听开始编辑结束编辑,能否改变文字,不能监听改变文字后的情况,本项目需要 监听文本框中是否有输入,代理和addTarget都不适用. 文本框发出的三个通知: UIKIT_

extjs组件添加事件监听的三种方式 http://blog.sina.com.cn/s/blog_48d7f92901011cfn.html

extjs对组件添加监听的三种方式 在定义组件的配置时设置 如代码中所示: Java代码 xtype : 'textarea', name : 'dataSetField', labelSeparator:'', fieldLabel:'', hideLabel: true, allowBlank: true, height: mainPanelHeight*0.8, anchor:'99%', listeners:{'blur':function(){ alert(1); }} 对组件变量通过

Springboot-Listener(springboot的事件监听的4种实现方式)

springboot事件监听的4种方式 第1种: 1.自定义事件MyApplicationEvent继承ApplicationEvent import org.springframework.context.ApplicationEvent; /** * Created by Administrator on 2018\11\13 0013. * 自定义事件继承ApplicationEvent */public class MyApplicationEvent extends Applicati

Android开发系列(十四):ListView用法、对ListView监听的三种方法以及ListView中Adapter的使用方法

一.ArrayAdapter的介绍以及ListView的用法: Adapter是数据和视图之间的桥梁,数据在adapter中做处理,然后显示到视图上面.就是用来绑定数据用的. 用一个小例子来介绍一下: public class FriendActivity extends Activity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea

安卓按钮添加监听的三种方法

在安卓开发中,对按钮添加监听,是每一个app都需要用到的.通常我们会用三种办法来对按钮进行监听.下面我们哎说说着三种.我个人是比较喜欢匿名内部类的方法的. 第一种,匿名内部类 匿名内部类一般通过以下代码完成,顾名思义,通过传入匿名内部类来实现监听并写出对应的事件处理 btButton.setOnClickListener(new OnClickListener() { @SuppressLint("ShowToast") @Override public void onClick(Vi

Android Listener 监听的几种写法

Android中,View的Listener方法,在是否使用匿名类匿名对象时,有各种不同的写法. OnClickListener和其他Listener方法一样,都是View类的接口,重载实现后就能使用,其接口定义如下: [java] view plaincopyprint public interface OnClickListener { /** * Called when a view has been clicked. * * @param v The view that was clic

JAVA中按钮的事件监听的三种方式

JAVA中的Swing组件,按钮的重点是进行事件的监听,可以通过调用JButton的addActionListener()方法.这个方法接受一个实现ActionListener接口的对象作为参数,ActionListener接口中只包含一个actionPerformed()方法,所以如果想把事件处理的代码与JButton进行关联,就需要如下的三种做法: 第一种: public class Button extends MyFrame {    private JButton        b1

王立平--android事件监听的3种方式

第一种通常在activity组件的oncreate事件中直接定义,直接动作. 这样的方式每一个控件都定义一次.通常不方便. Button btn = (Button) findViewById(R.id.myButton); btn .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //do something } }); 另外一种一般是在activity组件实现其接口.这样能够多外控件共

oracle 登录数据库时报 无监听 的一种解决方式(监听日志文件达到4g默认上限)

问题:登录服务器时 报无监听服务 检查步骤: 1.进入sqlplus查看数据库的状态,显示当前数据库的状态为OPEN 脚本:select status from v$Instance; 2.检查数据库的监听服务,登录的时候发现进入监听程序的速度非常慢 脚本:lsnrctl status 3.查看监听日志的大小,位置如下: $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\ 5.重启启动监听即可: lsnrctl stop  停止 lsnrc