2017-02-18 15 views
0

Я хотел бы показать диалог (секретное меню), когда пользователь ударяет 5 раз в любом месте активности. Это возможно? Я не смог этого добиться, а также не нашел ничего в документации.Получение события касания, когда пользователь удаляет ровно 5 раз

+0

Проверьте мой ответ тоже, это то, что вы хотите ??? –

ответ

0

попробуйте этот код: перезаписать метод onTouchEvent(MotionEvent event) в вашей деятельности и подсчитать количество нажатий ..

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

Первых глобальной переменным инициализировать mCounter который следить за сколько времени вы щелкнули деятельность.

int mCounter = 0;

вы можете переопределить onTouchEvent метод, как показано ниже в деятельности

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

Надежда это поможет вам.

0

Это довольно легко. Код будет идти, как это:

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

Для информации

Да, вы можете переопределить onTouchEvent(MotionEvent event)

Но

пользователя получить секретный меню всякий раз, когда он завершить 5 касаний.

Но для реального Тайной меню, когда-либо пользователь прикасается 5 раз Быстро диалог показывает вверх.

Для этого

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

}

Если пользователь не прикасается на мгновение сделать счетчик на 0.

Будьте осторожны, чтобы импортировать правильный обработчику

import android.os.Handler;