2017-02-18 20 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

まずIntializeグローバル変数mCounterアクティビティをクリックしてどのように多くの時間を追跡し

int mCounter = 0;あなたが活動

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

の内側に以下のようなメソッドをオーバーライドすることができonTouchEvent

これらはあなたを助け願っています。

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; 
関連する問題