希望问题说明一切......我一直在网上搜索一个简单的解决方案,我很惊讶地看到它没有?我希望这是一个基本的功能,我可以添加到XML文件中?我们欢迎替代方案,但我已经知道他们会在那里。我只想知道这种简单的方法是否可行(似乎无法在文档中找到任何内容但谁知道)
答案 0 :(得分:1)
您可以设置OnLongClickListener,如
btn.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
---code here---
return false;
}
});
或者您可以在按钮
上设置onTouchListnerbtn.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_UP:
---code here---
break;
case MotionEvent.ACTION_DOWN:
---code here---
break;
}
});
我不知道如何从xml
设置onLongClickListner答案 1 :(得分:0)
您可以将OnLongClickListener()
用于Button
请点击此链接阅读更多相关信息......
示例:
答案 2 :(得分:0)
没有任何默认方式可以做到这一点。但是使用onTouch()事件可以很容易地实现这一点。以下代码将在您触摸按钮时每0.5秒重复一次任务。释放按钮时,任务将被取消。
Handler repeatedHandler = new Handler();
Runnable newRunnable = new Runnable() {
@Override
public void run() {
//Code for the task that needs to be repeated
//...
//...
repeatedHandler.postDelayed(newRunnable, 500);
}
};
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
repeatedHandler.postDelayed(newRunnable, 500);
break;
case MotionEvent.ACTION_UP:
repeatedHandler.removeCallbacks(newRunnable);
break;
}
}
});