, 나는onTouchEvent() 활동이 3 번 발생합니까? 내 TitleScreen 활동에서
@Override
public boolean onTouchEvent(MotionEvent event)
{
Log.d("MyActivity", "in onTouchEvent!");
MediaPlayer myplayer = MediaPlayer.create(TitleScreen.this, R.raw.mysound);
myplayer.start();
startActivity(new Intent("com.example.GAME"));
return super.onTouchEvent(event);
}
이 내가 지연 반향이 경기하기를 원했지만, 소리를 만들고, 소리가 화면을 눌러에 연속으로 빠르게 3 번을 재생하는 원인이되었다 ... 있습니다. 로그를 확인하고 내 "inTouchEvent!" 메시지가 3 번 기록되었습니다.
이 활동은 제목 화면의 정적 이미지에 불과하며 다음 활동을 시작하려면 해당 활동을 살짝 누르십시오. 그렇게하면 지정된 소리가 재생됩니다. 내 MediaPlayer를 라인을
private static int playerInstances = 0;
후 포장 : 내 특정 문제에 대한
, 나는 세계적인 수준의 INT 변수를 배치하여 해결할 수 있었다if (playerInstances == 0)
{
MediaPlayer myplayer = MediaPlayer.create(TitleScreen.this, R.raw.critical1);
myplayer.start();
playerInstances++;
}
이 그 보험에 가입하는 코드 한 번만 실행됩니다. 그래서 내 문제가 해결되었습니다. 왜 한 번의 탭으로 onTouchEvent를 세 번 얻었는지 궁금합니다.
나는 3 개의 모든 터치 이벤트 (ACTION_DOWN, ACTION_UP, ACTION_MOVE)가 호출되기 때문에 생각합니다. 이 링크를 한번보세요 http://stackoverflow.com/questions/11777459/listview-mark-the-position-where-the-user-touches/11777780#11777780 – Braj
하, 훌륭합니다! 당신은 그 대답을 내가 당신에게 줄 수 있도록 대답해야합니다. – CptSupermrkt
흠 ... 행복하게 도와 줬어 ... 너는 그걸로 투표 할 수 있었어;) – Braj