Android:长按一下button – >执行操作
我想用同一个button来执行2种不同的方法。 一个用户单击它的方法,另一个方法(不同)当用户点击它。
我用这个单一的短按(这很好):
Button downSelected = (Button) findViewById(R.id.downSelected); downSelected.setOnClickListener(new OnClickListener() { public void onClick(View v) { method(); } } });
我试图添加一个longClickListener,但它没有工作。
欣赏关于如何解决这个问题的任何想法。
谢谢!
我之前做过,我只是用了:
down.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { // TODO Auto-generated method stub return true; } });
每个文档:
public void setOnLongClickListener(View.OnLongClickListener l)
从以下版本开始:API级别1单击并保持此视图时,注册要调用的callback。 如果这个视图不是可以长时间点击的,就会变成可以长时间点击的。
注意它需要返回一个布尔值,这应该工作。
为了让这两个函数适用于可点击的图片,这些图片会对短时和长时间的点击做出反应,我尝试了下面这种看起来完美的方法:
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; } });
//然后调用函数:
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(); }
看来,将XML中的项目声明为可点击,然后定义调用点击的函数的简单方法仅适用于短点击 – 您必须具有侦听器来区分短点击和长点击。
最初当我实现了longClick和点击来执行两个单独的事件时,我面对的问题是,当我有一个longclick,应用程序还执行了一个简单的点击执行的操作。 我意识到的解决scheme是将longClick的返回types更改为true,默认情况下这通常是false。 改变它,它完美的作品。
尝试使用ontouch监听器而不是clicklistener。
http://developer.android.com/reference/android/view/View.OnTouchListener.html
- 插件太旧,请更新到更新的版本,或设置ANDROID_DAILY_OVERRIDE环境variables
- Android Toast消息未显示
- 如何在Android Studio中将库导出到Jar?
- Android Studio:hover时javadoc为空
- 在Android中的活动之间传递数据
- Android Wear项目Gradle Sync失败
- HTML列表标记不能在android textview中工作。 我能做什么?
- Android Studio无法通过错误org.gradle.process.internal.ExecException进行debugging
- 我想我的Android应用程序只能在肖像模式下运行?