Ich möchte einen Dialog (geheimes Menü) anzeigen, wenn ein Benutzer 5 Mal irgendwo in der Aktivität tippt. Ist das irgendwie möglich? Das konnte ich nicht erreichen und habe auch nichts in der Dokumentation gefunden.Touch-Ereignis erhalten, wenn der Benutzer genau 5 Mal tippt
Antwort
diesen Code versuchen: überschreiben Sie die onTouchEvent(MotionEvent event)
Methode in Ihrer Aktivität und zählen Anzahl der Abgriffe ..
public class MainActivity extends Activity {
private int count = 0;
//detect any touch event in the screen
@Override
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
if (eventaction == MotionEvent.ACTION_UP) {
//get system current milliseconds
long time= System.currentTimeMillis();
++count;
if (count==5) {
//show Dialog
new AlertDialog.Builder(MainActivity.this)
.setTitle("Your Alert")
.setMessage("Your Message")
.setCancelable(false)
.setPositiveButton("ok", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Whatever...
}
}).show();
}
return true;
}
return false;
}
}
Erste intialize globale Variable mCounter, die Spur zu halten, wie viele Zeit, die Sie auf die Aktivität klicken.
int mZähler = 0;
können Sie onTouchEvent Methode wie unten im Inneren Aktivität
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// increase counter here
counter = counter + 1;
if(counter == 5) {
// show dialog here
}
break;
}
return true;
}
}
Hoffe, dass diese Ihnen helfen, außer Kraft setzen.
Das ist ziemlich einfach. Der Code wird so gehen:
public class MainActivity extends Activity {
private int count = 0;
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
if (eventaction == MotionEvent.ACTION_UP) {
count++;
}
else{
break;
}
if (count==5) {
//do whatever you need
Toast.makeText(getActivity(), "You tapped 5 times on screen",
Toast.LENGTH_LONG).show();
}
return true;
}
return false;
}
Zu Ihrer Information
Ja Sie onTouchEvent(MotionEvent event)
Aber
Benutzer erhalten das geheime Menü außer Kraft setzen kann, wann immer er die komplette 5 Berührungen.
Aber für ein echtes Geheimnis Menü, Wann immer der Benutzer 5 mal schnell berührt der Dialog erscheint.
Aus diesem
public class MainActivity extends Activity {
private final int count = 0;
Handler handler;
Runnable runnable;
@Override
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
if (eventaction == MotionEvent.ACTION_UP) {
count++;
if (count > 0) {
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
count = 0;
}
};
handler.postDelayed(runnable, 1000); // clear counter if user does not touch for one sec
}
if (count == 5) {
//do whatever
}
return true;
}
return false;
}
}
Wenn der Benutzer nicht einen Moment lang nicht berührt machen den Zähler auf 0.
Seien Sie vorsichtig rechts Handler importieren
import android.os.Handler;
- 1. Swift Format Textfeld, wenn der Benutzer tippt
- 2. Blaue Markierung über einem ImageView, wenn der Benutzer darauf tippt
- 3. Softkeyboard ausblenden, wenn der Benutzer außerhalb des Dialogs tippt
- 4. Schließen Sie ListView ab, wenn der Benutzer außerhalb davon tippt
- 5. Select2 Suche Erkennen, ob der Benutzer tippt
- 6. Einführungs-Aktivität, wenn Benutzer auf eine Benachrichtigung vom Lockscreen tippt
- 7. Nginx nicht richtig Umlenken wenn Benutzer tippt https: //
- 8. jquery herausfinden, ob der Benutzer tippt oder nicht
- 9. Markierer hinzufügen, wenn der Benutzer auf die Google Maps iOS App tippt?
- 10. App starten, wenn sich der Benutzer zum ersten Mal anmeldet
- 11. Aufruf-API jedes Mal, wenn der Benutzer die Ansicht eingibt
- 12. Eine Ansicht beenden, wenn ein Benutzer irgendwo außerhalb der Ansicht tippt
- 13. Wie verhindere ich, dass EditText sich selbst verändert, wenn der Benutzer tippt?
- 14. Was macht das Android-System, wenn der Benutzer außerhalb eines Dialogs tippt?
- 15. Wie vermeidet man mehrere Trigger auf EditText, während der Benutzer tippt?
- 16. Schleife genau N! mal für die Permutationslogik?
- 17. zählen genau 5 Minuten vom Datum
- 18. Laravel 5: Ändere navbar, wenn der Benutzer eingeloggt ist
- 19. verlängern Laravel 5 integrierte Authentifizierung nur „wenn der Benutzer == aktiv“
- 20. Vorzugsweise als 5 Tage, wenn der Benutzer eingerichtet hat
- 21. Der Versuch, eine for-Schleife erhalten auszuführen 5 Mal auf der gleichen Ausgabe
- 22. Rspec Mocks any_instance mit genau (n) mal
- 23. Erhöhung der Schwierigkeit der Rate das Zahlenspiel jedes Mal, wenn der Benutzer gewinnt (Python)
- 24. Begrüßungs-E-Mail senden, wenn sich der Benutzer zum ersten Mal bei der App anmeldet
- 25. Abfrage gibt Ergebnisse 5 mal zurück
- 26. XForms Orbeon: wie man exforms limitiert: nur nach "load form" sortieren (Block sortieren, wenn der Benutzer tippt)
- 27. Schienen 5 erhalten Assoziation der Assoziation
- 28. Wie öffne ich ein Fenster, wenn ein Benutzer auf die bestimmte Zeile in meiner Anwendung tippt?
- 29. Wie wird mit der interaktiven Benachrichtigung verfahren, wenn keine Aktion ausgeführt wird und der Benutzer auf die Benachrichtigung tippt?
- 30. Wie kann ich eine Liste in einer Symbolleiste in QML erweitern, wenn der Benutzer auf den Titel der Datei tippt?
Überprüfen Sie meine Antwort auch, Ist das was du willst ?? –