android View长按事件简单写法

在开发过程中遇到View长按事件处理,发现还有一种简单写法。

一般常用长按View监听setOnLongClickListener,大概3s时间。如需要更长的需要自己自定义。我根据触摸监听setOnTouchListener的三种状态ACTION_DOWN,ACTION_MOVE,ACTION_UP去判断View的状态。代码示例如下:

Handler mHandler = new Handler();


View.setOnTouchListener(new View.OnTouchListener() { 

@Override

public boolean onTouch(View view,MotionEvent motionEvent) {

switch(motionEvent.getAction()) {

case MotionEvent.ACTION_DOWN:

//在按下时使用SharedPreference记录一个标记值。

SharedPreferenceUtil.setInt("shili",one);

//开启一个线程,此线程定义自己需要延时多少s。

mHandler.postDelayed(mRunnable,5000);

break;

case MotionEvent.ACTION_MOVE:

break;

caseMotionEvent.ACTION_UP:

SharedPreferenceUtil.setInt("shili",two);

mHandler.removeCallbacks(mRunnable);

break;

}

}

});


Runnable mRunnable = new Runnable(){

@Override

public void run(){

int getnum = SharedPreferenceUtil.getInt(“shili”,two);

if(getnum == one) {

//此处根据判断可添加自己延迟后要执行的逻辑

}

}

}


使用过程中,本地存储SharedPreference要多注意,如果还需要使用setOnClickListener(),在ACIONT_DOWN处使用SharedPreference在添加个标记就行,此处不在过多描述,此方法可替代setOnTouchListener,在线程方法里控制延迟时间就行。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值