2016-06-10 3 views
0

duration2duration4의 값을 비교할 때 응답/메시지가 올바르지 만 사용중인 토스트 메시지가 두 번 인쇄됩니다. 나는 왜 그런 일이 일어나는지 모른다. 이 문제를 해결하는 방법을 알려주십시오.토스트 메시지가 두 번 프린트되는 이유는 무엇입니까?

Button b1, b2, b3; 
long duration, duration2, duration3, duration4; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    b1=(Button)findViewById(R.id.button1); 
    b2=(Button)findViewById(R.id.button2); 
    b3=(Button)findViewById(R.id.button3); 

    b1.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction()==MotionEvent.ACTION_DOWN) { 
       duration=System.currentTimeMillis(); 
      } 
      else if (event.getAction()==MotionEvent.ACTION_UP) { 
       duration2= System.currentTimeMillis()-duration; 
      } 

      return true; 
     } 
    }); 
    b2.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction()==MotionEvent.ACTION_DOWN) { 
       duration3=System.currentTimeMillis(); 
      } 
      else if (event.getAction()==MotionEvent.ACTION_UP) { 
       duration4= System.currentTimeMillis()-duration3; 
      } 

      if(duration4<duration2) { 
       Toast.makeText(getApplicationContext(), "Good", Toast.LENGTH_SHORT).show(); 
      } 
      else if(duration4>duration2) { 
       Toast.makeText(getApplicationContext(), "Too Slow Man", Toast.LENGTH_SHORT).show(); 
      } 
      return true; 

     } 
    }); 
} 

답변

0

당신은 onTouchEvent 내부에 토스트하고 있기 때문에. ACTION_DOWN 및 ACTION_UP이 있습니다.

나는 간단한 수정 이미 메시지를 표시 한 말과 시간의 주위에 문을

+0

Ohk을 선택하면,이 시도됩니다 감사에 그것을 추가하는 부울 값을 저장하는 것 같아요. –

관련 문제