sinat_bond 2018-01-22 08:26 采纳率: 25%
浏览 705
已结题

一个关于安卓中发送消息的问

 public class MyScrollView extends ScrollView {

    private Runnable scrollerTask;
    private int initialPosition;

    private int newCheck = 100;
    private static final String TAG = "MyScrollView";

    public interface OnScrollStoppedListener{
        void onScrollStopped();
    }

    private OnScrollStoppedListener onScrollStoppedListener;

    public MyScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);

        scrollerTask = new Runnable() {
            public void run() {
                int newPosition = getScrollY();
                if(initialPosition - newPosition == 0){//has stopped
                    if(onScrollStoppedListener!=null){
                        onScrollStoppedListener.onScrollStopped();
                    }
                }else{
                    initialPosition = getScrollY();
                    MyScrollView.this.postDelayed(scrollerTask, newCheck);
                }
            }
        };
    }

    public void setOnScrollStoppedListener(MyScrollView.OnScrollStoppedListener listener){
        onScrollStoppedListener = listener;
    }

    public void startScrollerTask(){

        initialPosition = getScrollY();
        MyScrollView.this.postDelayed(scrollerTask, newCheck);
    }

}

就是在自定义的scrollview的构造方法里面,当它走else方法的时候为什么能够自己发送自己??因为平时自己的写法都是先写postdelay然后里面再写里面的runnable方法,对于他这种写法,不能理解,也不能明白为什么能够自己发送自己?求前辈们指点

  • 写回答

3条回答 默认 最新

  • 麦、积 2018-01-22 09:19
    关注

    private OnScrollStoppedListener onScrollStoppedListener;

    public MyScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    
        scrollerTask = new Runnable() {
            public void run() {
                int newPosition = getScrollY();
                if(initialPosition - newPosition == 0){//has stopped
                    if(onScrollStoppedListener!=null){
                        onScrollStoppedListener.onScrollStopped();
                    }
                }else{
                    initialPosition = getScrollY();
                    MyScrollView.this.postDelayed(scrollerTask, newCheck);
                }
            }
        };
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试