Android上的双击事件';s屏幕
我是Android新手。实际上,每当我双击android屏幕(布局)时,我都想创建一个Android上的双击事件';s屏幕,android,toast,double-click,Android,Toast,Double Click,我是Android新手。实际上,每当我双击android屏幕(布局)时,我都想创建一个Toast。但每当我双击屏幕时,什么都没有发生。请解决我的问题 public class MainActivity extends Activity implements OnDoubleTapListener,OnGestureListener{ int clickCount = 0; long startTime; long duration; static final int M
Toast
。但每当我双击屏幕时,什么都没有发生。请解决我的问题
public class MainActivity extends Activity implements OnDoubleTapListener,OnGestureListener{
int clickCount = 0;
long startTime;
long duration;
static final int MAX_DURATION = 500;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GestureDetector detector = new GestureDetector(this,this);
detector.setOnDoubleTapListener(new OnDoubleTapListener() {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
if(e.getAction()==1)
{
Toast.makeText(getBaseContext(), "onSingleTapConfirmed", Toast.LENGTH_LONG).show();
}
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
if(e.getAction()==1)
{
Toast.makeText(getBaseContext(), "onDoubleTapEvent", Toast.LENGTH_LONG).show();
}
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
if(e.getAction()==1)
{
Toast.makeText(getBaseContext(), "onDoubleTap", Toast.LENGTH_LONG).show();
}
return true;
}
});
}
在您的活动中:
@Override
public boolean onTouchEvent(MotionEvent event) {
return detector.onTouchEvent(event);
}
如果要在特定视图上附加Dector
LinearLayout layout = (LinearLayout) findViewById(R.id.yourLinearLayoutId);
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return detector.onTouchEvent(event);
}
});
试试这个
LinearLayout layout = (LinearLayout) findViewById(R.id.yourLinearLayoutId);
layout .setOnTouchListener(this);
gestureDetector = new GestureDetector(new MyGestureDetector());
并像内部类一样使用这个类
public class MyGestureDetector extends SimpleOnGestureListener implements OnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
Toast.makeText(getBaseContext(), "onDoubleTapEvent", Toast.LENGTH_LONG).show();
return super.onDoubleTap(e);
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)){
Log.v(TAG,"screen touched");
return true;
}
else{
return false;
}
}
如果你在寻找类似双击的东西,那么你必须使用ok..但是如果我有一个线性布局,那么,如果我在任何地方单击,它会工作吗?单击后,我想要一个弹出窗口?@Aditya你想只在你的线性布局上使用双击事件吗?@blackbelt是的,先生..我只有一个简单的线性布局。我只想在布局上。这意味着我必须在我已经存在的类中编写另一个类?最好你可以这样使用。@SankarV是的,我有已经用过了。我想点击线性布局中的任何地方