• Android 开发中的View事件监听机制


    在开发过程中,我们常常根据实际的需要绘制自己的应用组件,那么定制自己的监听事件,及相应的处理方法是必要的。我们都知道Android中,事件的监听是基于回调机制的,比如常用的OnClick事件,你了解它的运行机制吗?如果你已经了解了,那么就不必看了,如果没有,这篇文章会给你给你很大的益处。

    自定义的View组建,一般的情况是继承自View类,实现其中的onDraw(canvas)方法,然后在其中绘制自己的组件。但是对于组件的监听事件该怎么办呢?监听事件的实现是用匿名类实现。下面先了解一下什么是

    匿名类:

    从实现的功能来讲是一样的,但是使用匿名更加简洁方便,形式上有点像new一个接口或类的感觉,但是我们必须记住接口是不可以new出来的(实例化),我们要在内部重写需要的接口的方法,这样就new出了一个实现接口方法的对象,但是这个对象的类名不可见,所以叫做匿名类。

    下面看看这个代码:

    //实现自己的View

    public  MyView extends View{

       OnCLickListener   listener=null;   //监听器类对象

       //监听器类接口

        public static abstract interface  OnClickListener{

            public abstract void onClick(); //单击事件处理接口

        }

        public MyView(Context context){

        }

        public void onDraw(Canvas canvas){

        }

       //实现这个View的监听器

        public void setOnClickListener(OnClickListener  listener){

            this.listener = listener;   //引用监听器类对象,在这里可以使用监听器类的对象

        }

    }

    //下面是测试类

    public class MyActivity extends Activity{

        public void onCreate(Bundle  b){

             super.onCreate(b);

             MyView  mv  = new MyView(this);  //实例化View对象

             mv.setOnClickListener(new MyView.OnClickListener(){

                 public void onClick(){

                     //实现单击事件处理接口

                 }

             });

        }

    }

    红色标记的部分都是重点,希望多多理解。这只是一个简单的例子,其它的还应该多多理解学习。

    转载http://blog.sina.com.cn/s/blog_8a86f4dd0101aidk.html

  • 相关阅读:
    JVM理论:(一/2)OutOfMemoryError异常
    JVM理论:(一/1)对象的创建过程
    JVM理论:(一)JVM内存模型
    MySQL优化(6):Mysql锁机制
    MySQL优化(5):索引失效分析、in与exists使用场合
    MySQL优化(4):explain分析
    MySQL优化(3):慢SQL分析
    MySQL优化(2):索引简述
    MySQL优化(1):Mysql简述
    MySQL基础(4):事务控制
  • 原文地址:https://www.cnblogs.com/rookie-26/p/5265357.html
Copyright © 2020-2023  润新知