本文概述:

  • 本文介绍了,在android中为控件添加监听的三种常见方式

    • 设置控件的onclick属性
    • 采用匿名内部类
    • mainactivity 实现 view.onclicklistener 接口

方式一:在布局中添加onclick属性

  • 编写思路:

    • 在布局文件中:

      • 指定控件 id
      • 指定控件onclick属性
    • 在mainactivity中:

      • 在oncreate中拿到控件实例
      • 在oncreate之外,创建监听方法(方法名与前面设置的onclick属性相同)
  • 布局代码:指定控件的onclick属性(已经被废弃掉了)

    <button
        ……
        android:id="@+id/button"
        android:onclick="buttonclick"
        …… />
    
  • activity代码:

    public class mainactivity extends appcompatactivity {
    ​
        private button button;
        
        @override
        protected void oncreate(bundle savedinstancestate) {
            super.oncreate(savedinstancestate);
            setcontentview(r.layout.activity_main2);
            //获取控件示例
            button = findviewbyid(r.id.button);
        }
    ​
        public void buttonclick(view view) {
           settoast("点击了button按钮");
        }
    ​
        public void settoast(string string){
            toast.maketext(this,string,toast.length_short).show();
        }
    }
    
  • 运行结果:可不可以限定toast的提示位置?比如说将toast放在中间去

方式二:采用匿名内部类

  • 编写思路:

    • 在布局文件中:指定控件 id

    • 在mainactivity中

      • 在oncreate内:

        • 获取控件实例
        • 为控件添加监听(使用匿名内部类重写onclick方法)
  • 布局代码:此时不能设置onclick属性

    <button
        ……
        android:id="@+id/button"
        …… />
    
  • java 代码

    public class mainactivity extends appcompatactivity {
    ​
        private button button;
    ​
        @override
        protected void oncreate(bundle savedinstancestate) {
            super.oncreate(savedinstancestate);
            setcontentview(r.layout.activity_main2);
    ​
            //获取控件示例
            button = findviewbyid(r.id.button);
    ​
            //添加监听
            button.setonclicklistener(new view.onclicklistener() {
                @override
                public void onclick(view view) {
                    settoast("点击了按钮");
                }
            });
        }
    ​
        public void settoast(string string){
            toast.maketext(this,string,toast.length_short).show();
        }
    }
    
  • 运行结果:

方式三:mainactivity 实现 view.onclicklistener 接口

  • 编写思路:

    • 在布局文件中:

      • 指定控件 id
    • 在mainactivity声明处:实现 view.onclicklistener 接口

    • 在mainactivity中:

      • 在oncreate方法内:

        • 拿到控件实例
        • 为控件注册监听器
      • 在oncreate方法外:重写onclick方法

  • 布局代码:

    <button
        ……
        android:id="@+id/button"
        …… />
    
  • mainactivity 代码

    public class mainactivity extends appcompatactivity implements view.onclicklistener {
    ​
        private button button;
    ​
        @override
        protected void oncreate(bundle savedinstancestate) {
            super.oncreate(savedinstancestate);
            setcontentview(r.layout.activity_main2);
    ​
            //获取控件示例
            button = findviewbyid(r.id.button);
            //为控件注册监听器
            button.setonclicklistener(this);
        }
    ​
        public void settoast(string string){
            toast.maketext(this,string,toast.length_short).show();
        }
    ​
        @override
        public void onclick(view view) {
            settoast("按钮被点击了");
        }
    }
    
  • 运行效果:

到此这篇关于android如何添加控件监听器(三种方式)的文章就介绍到这了,更多相关android 控件监听器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!