zoukankan      html  css  js  c++  java
  • Android开发之基于监听的事件处理



    在Android 应用开发过程中,常用监听事件如下:
    (1) ListView事件监听
    setOn ItemSelectedListener:鼠标滚动时触发
    setOnItemClickListener: 点击时触发
    (2 )EditText 事件监听
    setOnKeyListener: 获取焦点时触发
    (3) RadioGroup事件监听
    setOnCheckedChangeListener: 点击时触发
    (4) CheckBox事件监听
    setOnCheckedChangeListener :点击时触发
    (5 )Spinner事件监听
    setOnltemSelectedListener:点击时触发

     

    (6) DatePicker 事件监听

    onDateChangedListener: 日期改变时触发

    (7 )DatePickerDialog 事件监听
    onDateSetListener:设置日期时触发
    (8) TimePicker 事件监听
    onTimeChangedListener:时间改变时触发
    (9 )TimePickerDialog 事件监听
    onTimeSetListener: 设置时间时触发
    (10)Button.ImageButton 事件监听
    setOnClickListener: 点击时触发
    (11)Menu 事件监听
    onOptionsltemSelected; 点击时触发
    (12 )Gallery 事件监听
    setOnItemClickListener: 点击时触发
    (13 )GridView 事件监听
    setOnltemClickListener: 点击时触发

     

    实现事件监听器的方法:

    • 内部类形式
    • 外类类形式
    • Activity本身作为事件监听器类
    • 匿名内部类形式
    • 直接绑定到标签

     

    内部类形式

    将事件监听器类定义在当前类的内部

      

    public class Test extends Activity{
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            MyButtonlistener listener = new MyButtonlistener();
            button.setOnClickListener(listener);
        }
        class MyButtonlistener implements View.OnClickListener{
            @Override
            public void onClick(View v) {
                //相关事件处理
            }
        }
    }

    外类类形式

    Test类

    public class Test extends Activity{
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            MyButtonlistener listener = new MyButtonlistener();
            button.setOnClickListener(listener);
        }
    
    }

    MyButtonlistener类

    public class MyButtonlistener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            //事件处理
        }
    }

    Activity本身作为事件监听器类

      将Activity本身作为事件监听器类

      

    public class Test extends Activity implements View.OnClickListener{
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            button.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            //事件处理
        }
    }

     

     

    匿名内部类形式

    public class Test extends Activity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //事件处理
                }
            });
        }
    }

     

    直接绑定到标签

    在xml的布局文件中加入onClick属性,设置相关的方法

     

    定义一个方法,记得参数是View

  • 相关阅读:
    如何DIY陶瓷制作方法
    陶瓷的分类
    陶瓷
    机器视觉之——认知篇
    Halcon学习笔记(一)
    编程过程遇到的问题及解决方法
    前端技术——WebFont与Sprite
    HTML学习总结(四)【canvas绘图、WebGL、SVG】
    CSS3学习之——【特殊属性】
    HTML5学习总结——本地存储
  • 原文地址:https://www.cnblogs.com/stars-one/p/7616285.html
Copyright © 2011-2022 走看看