我想使用相同的按钮来执行2种不同的方法.用户单击它时的一种方法和用户LONG单击它时的第二种方法(不同).
我用它来进行单击(这非常有效):
Button downSelected = (Button) findViewById(R.id.downSelected);
downSelected.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
method();
}
}
});
Run Code Online (Sandbox Code Playgroud)
我试图添加一个longClickListener但它没有用.
欣赏有关如何解决这个问题的任何想法.
谢谢!
bli*_*uff 111
我以前做过,我只是用过:
down.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
每个文件:
public void setOnLongClickListener(View.OnLongClickListener l)
从以下版本开始:API Level 1注册单击并保持此视图时要调用的回调.如果此视图不能长时间点击,则可以长时间点击.
请注意,它需要返回一个布尔值,这应该工作.
小智 17
为了使两个函数都能用于响应短期和长期点击的可点击图像,我尝试了以下似乎完美的工作:
image = (ImageView) findViewById(R.id.imageViewCompass);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
shortclick();
}
});
image.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
longclick();
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
//然后调用的函数:
public void shortclick()
{
Toast.makeText(this, "Why did you do that? That hurts!!!", Toast.LENGTH_LONG).show();
}
public void longclick()
{
Toast.makeText(this, "Why did you do that? That REALLY hurts!!!", Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
似乎将XML中的项目声明为可点击,然后定义要在点击上调用的函数的简单方法仅适用于短期点击 - 您必须有一个监听器来区分短期和长期点击.
Sai*_*esh 16
最初,当我实现了一个longClick和一个单击以执行两个单独的事件时,我遇到的问题是当我有一个longclick时,应用程序还执行了一个简单点击执行的操作.我意识到的解决方案是将longClick的返回类型更改为true,默认情况下通常为false.改变它,它完美地运作.
| 归档时间: |
|
| 查看次数: |
114075 次 |
| 最近记录: |