Wie Doppelklick-Ereignis in Android ohne Verwendung von Gestenerkennung implementieren?Doppelklicken Ereignis in Android
Antwort
Wenn Sie doppelt tippen meinen Sie GestureDetector.OnDoubleTapListener verwenden.
Blick auf den Quellcode für GestureDetector
und kopieren Sie die Bits, die Sie benötigen (insbesondere, Blick auf die isConsideredDoubleTap
Methode)
Ich benutze Diagramm-Anwendung, wenn ich auf den Punkt für Doppelklick klicke, wird es zu einer anderen Aktivität gehen. Wenn ich Gesten-Detektor verwendet werde, wenn ich irgendwo klicke, wird es zu anderen Aktivitäten gehen – user386430
Ich bin sicher, dass der ganze Code dort bestimmt, ob der zweite Klick innerhalb einer bestimmten Zeit des ersten Klicks war, andernfalls behandle es als einen zweiten Klick. So würde ich es trotzdem machen.
Verwenden Sie einfach setOnTouchListener, um die erste und zweite Klickzeit aufzuzeichnen. Wenn sie sehr nahe sind, bestimmen Sie es als Doppelklick. Wie diese
public class MyActivity extends Activity {
private final String DEBUG_TAG= "MyActivity";
private long firstClick;
private long lastClick;
private int count; // to count click times
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button mButton= (Button)findViewById(R.id.my_button);
mButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
// if the second happens too late, regard it as first click
if (firstClick != 0 && System.currentTimeMillis() - firstClick > 300) {
count = 0;
}
count++;
if (count == 1) {
firstClick = System.currentTimeMillis();
} else if (count == 2) {
lastClick = System.currentTimeMillis();
// if these two clicks is closer than 300 millis second
if (lastClick - firstClick < 300) {
Log.d(DEBUG_TAG,"a double click happened");
}
}
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
}
}
Schauen Sie hier, ist diese Bibliothek im Glas für Touch-Gesten zu hören, implementieren und Arbeit) https://github.com/NikolayKolomiytsev/zTouch
Was ist ein Doppelklick auf Handy-Display? – Pentium10
Warum können Sie den Gestendetektor nicht verwenden? – Janusz