ユーザーは、アクティビティのどこかで5回タップするとダイアログ(秘密メニュー)を表示したいと思います。これは何とか可能ですか?私はこれを達成することができませんでしたし、ドキュメントに何も見つかりませんでした。ユーザーがちょうど5回タップしたときのタッチイベント
0
A
答えて
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;
関連する問題
- 1. Playframework取得ユーザーのユーザーのリストを渡すが、ちょうど私がちょうどユーザーを取得し、コマンドラインでつくれしようとしている
- 2. ちょっと、ちょっと、私はちょうど "git add"をしましたか?
- 3. ちょうど
- 4. :ちょうど
- 5. ちょうどちょっと言われるようにピクセル
- 6. Fancyboxインラインがちょうど
- 7. PHP POSTがちょうど
- 8. デバッガセッションのためのちょうどチャンス
- 9. JavaScript - ちょうど学習のため
- 10. Laravel 5 - ちょうど画像をアップロードするとき、私はアップロードしようとするVerifyCsrfToken.phpラインでTokenMismatchException 67
- 11. はちょうどFirefoxの
- 12. リベースとリセットと復元?私はちょうどロールバックしたい
- 13. ちょうどいただきまし_source
- 14. Facebookのログインボタンがちょうど
- 15. これは5に設定された回転キーでちょうどCommon Lispではシーザー暗号をある
- 16. ちょうど1回のメッセージ処理をフリック
- 17. jQueryの検証:ちょうど英語の文字+ちょうどの数字
- 18. 私はちょうどjqueryで入力したフィールドの値を回復したいと思います
- 19. WPF FileDragOverイベント:ちょうど
- 20. 私はちょうど
- 21. コールはちょうど
- 22. ZedGraph:ちょうどドット
- 23. それはちょうど
- 24. 出版ちょうどコントローラ
- 25. 私はちょうど
- 26. Libgdx Mouseがちょうどクリックされました
- 27. PHPフォームがちょうどリフレッシュ
- 28. ちょうどmysqlのクエリを正しく得ることができない
- 29. コンポジットパターンは、ちょうどアレイに私をもたらすのでしょうか?
- 30. ドラッグアンドドロップキャッチセルの値がちょうど下がった
私の答えもチェックしてください、それはあなたが欲しいものですか? –