我想使用同一个按钮执行2种不同的方法。一种方法是用户单击它,第二种方法(不同)是用户长时间单击它。
我用这个来进行简短的点击(效果很好):
Button downSelected = (Button) findViewById(R.id.downSelected);
downSelected.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
method();
}
}
});
字符串
我尝试添加一个longClickListener,但它不起作用。
感谢任何关于如何解决这个问题的想法。
谢谢你,谢谢
7条答案
按热度按时间tsm1rwdh1#
我以前做过,我只是用:
字符串
根据文件:
public void setOnLongClickListener(View.OnLongClickListener l)
Since:API Level 1注册一个回调,当点击并按住此视图时调用。如果此视图不是可长时间单击的,则变为可长时间单击的。
请注意,它需要返回一个布尔值,这应该可以工作。
quhf5bfb2#
为了让这两个函数都能为一个可点击的图像工作,它将对短点击和长点击都做出响应,我尝试了以下方法,看起来效果很好:
字符串
//然后调用的函数:
型
在XML中将项声明为可单击,然后定义一个函数在单击时调用的简单方法似乎只适用于短单击--必须有一个侦听器来区分短单击和长单击。
7eumitmz3#
最初,当我实现一个longClick和一个click来执行两个单独的事件时,我面临的问题是,当我有一个longclick时,应用程序也执行了一个简单的click要执行的操作。我意识到的解决方案是将longClick的返回类型更改为true,默认情况下通常为false。改变它,它工作得很完美。
gdrx4gfi4#
在longClickListener中将
return false;
更改为return true;
你长时间点击按钮,如果它返回true,那么它就工作了。如果它返回false,那么它就执行它的工作,并调用短点击,然后onClick也工作。
6mw9ycah5#
谢谢!!在Kotlin的作品是这样的:
字符串
rjee0c156#
尝试使用ontouch侦听器而不是clicklistener。
http://developer.android.com/reference/android/view/View.OnTouchListener.html
aiazj4mn7#
最简单和更新的方法是使用长单击侦听器,如
字符串