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

  • 相关阅读:
    利用深度学习网络自动给图像上色的文章和相关工程实现
    Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记
    (转) Dissecting Reinforcement Learning-Part.2
    (转) 多模态机器翻译
    编译caffe的Python借口,提示:ImportError: dynamic module does not define module export function (PyInit__caffe)
    (转)How Hash Algorithms Work
    深度学习 目标检测算法 SSD 论文简介
    (转)能根据文字生成图片的 GAN,深度学习领域的又一新星
    (转) Face-Resources
    (转) AdversarialNetsPapers
  • 原文地址:https://www.cnblogs.com/stars-one/p/7616285.html
Copyright © 2011-2022 走看看