2017-02-18 2 views
0

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

+0

Überprüfen Sie meine Antwort auch, Ist das was du willst ?? –

Antwort

0

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; 
    } 

} 
0

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.

0

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; 
} 
0

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; 
Verwandte Themen