사용자가 활동 중 아무 곳에서나 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
먼저 초기화하기 전역 변수 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;
내 대답도 확인하십시오. 원하는 것을 원하십니까 ?? –