android 编程 按住 按一下 松开 分别如何监听

androidbutton监听按扭按住不松时,松开时,和按一下就松开(键入),这三种情况的独立事件... android button 监听 按扭 按住不松时,松开时,和按一下就松开(键入),这三种情况的独立事件 展开
 我来答
掌宏畅R8
推荐于2016-04-15 · TA获得超过3293个赞
知道答主
回答量:651
采纳率:0%
帮助的人:164万
展开全部
分别实现listener并 为按键set 相应的listener.
长按是onLongClickListener
短按是onClickListener
放开好像没有这个接口,那就只能用onTouch了, event.getAction() == MotionEvent.ACTION_UP 就是放手了
wuhao1542
推荐于2018-02-28 · TA获得超过175个赞
知道答主
回答量:90
采纳率:0%
帮助的人:107万
展开全部
楼主是想表达,“长按”时间的监听吗?那么:

down.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stubreturntrue;
}
});

望楼主采纳!
更多追问追答
追问
我想要的是,长按时触发一个效果,长按松开时停止这个效果,然后短按时触发另一个效果。
比如一个播放器的“下一首”按扭,短按一下:切歌到下一首;长按:快进当前歌曲;长按松开:正常播放歌曲
追答
boolean longClicked = false;

button.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
longClicked = true;
}
});

button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v,MotionEventevent){
if(event.getAction() == MotionEvent.ACTION_DOWN) {
if(longClicked) {
//快进

}

} elseif(event.getAction() == MotionEvent.ACTION_UP) {
longClicked = false;
}
}

});

短按就不用说了吧setOnClickListener就好了。

望采纳!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wilsonchan0201
2012-11-19 · TA获得超过514个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:198万
展开全部
分别实现listener并 为按键set 相应的listener.
长按是onLongClickListener
短按是onClickListener
放开好像没有这个接口,那就只能用onTouch了, event.getAction() == MotionEvent.ACTION_UP 就是放手了
追问
但是无论长按(onLongClickListener)还是短按(onClickListener),松开手时都会触发(onTouch)。
我想要的是,长按时触发一个效果,长按松开时停止这个效果,然后短按时触发另一个效果。
比如一个播放器的“下一首”按扭,短按一下:切歌到下一首;长按:快进当前歌曲;长按松开:正常播放歌曲
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CcJasper
2012-11-19
知道答主
回答量:15
采纳率:0%
帮助的人:4.7万
展开全部
touch事件里面有 up down over 三种状态
追问
然后呢?
追答
然后你就在up的后面写你想做的事 down的后面写你先做的事 ……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式