2011-02-01 5 views
11

특정 작업이 발생하면 내 애플리케이션에 Toast이 표시됩니다. 그러나이 두 가지 조치가 아주 가까운 곳에서 발생하면 첫 번째 메시지 인 Toast을 표시하지 말고 두 번째 메시지 만 표시하십시오. 내가 Toast.cancel() 트릭을 할 줄 알았지 만, 그것은 첫 번째 토스트를 숨기는 것입니다; 두 번째 것은 첫 번째 디스플레이가 어쨌든 표시를 마친 후에 만 ​​표시됩니다.표시되기 전에 Android에서 건배를 취소하십시오.

예 코드 :

Toast toast1 = Toast.makeText(parentActivity, "Test1", Toast.LENGTH_SHORT); 
Toast toast2 = Toast.makeText(parentActivity, "Test2", Toast.LENGTH_SHORT); 

toast1.show(); 
toast2.show(); 

toast1.cancel(); 

Toast는 단기간 (짧은 기간의 길이)를 기다린 후 나타난다. 실제로 toast2.cancel()으로 전화를 걸어도이 문제가 발생합니다.

+1

http://stackoverflow.com/questions/16098151/android-cancel-toast - 앱을 종료 할 때 및 때를 알리는 토스트가 표시됨). 나는 .cancel()이 제대로 작동하지 않는 데 문제가 없었다. –

답변

1

이 방법이 효과가 있을지 모르겠지만 둘 다 취소 한 다음 두 번째 것을 다시 시도하십시오.

+3

죄송합니다, 동일한 결과 : Test2가 표시되지만 지연됩니다. 나는 실제로 토스트 소스 코드에서 "취소"하는 것은 시스템에서 건배를 축출하지 않고보기를 숨기는 것을 발견했습니다. –

1

Toast.makeText(context, text, duration)토스트 개체를 반환합니다. 취소 하시려면이 객체에 cancel() 메서드를 호출하십시오.

예 : 내가 [이 관련 포스트에서 참조 내`Boast.java` 클래스 (에서 좋은 결과를 있었다

Toast mToastText = Toast.makeText(getApplicationContext(), "Hello StackOverFlow!", Toast.LENGTH_SHORT); 
mToastText.cancel(); 
+0

그의 질문을 읽었습니까? –

관련 문제