마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

토스트 Toast 를 제거 할 수 있나요?

0 추천
토스트 출력 후에 새로운 토스트 메시지가 나오면 전에 나온 토스트의 시간이 끝나지 않았더라도 화면에 출력중인 토스트를 지우고 새로운 토스트를 출력하게 하고 싶습니다.

방법이 있다면 알려주시면 감사하겠습니다. ㅠㅠ

그리고 안된다면 토스트의 시간을 단축시키는 방법이 있을까요?

제가 알기로는 안드로이드 2.0 부터 토스트의 시간을 개발자가 임의로 줄 수 없다고 하던데 ㅠㅠ
nandroid (1,620 포인트) 님이 2014년 8월 17일 질문

4개의 답변

0 추천
 
채택된 답변
private Toast toast = null; 


// 토스트 전용 메서드를 만든다 


private void toastShow(String message) { 

  // 토스트 메서드 

  if (toast == null) { 

   toast = Toast.makeText(this, message, Toast.LENGTH_SHORT); 

  } else { 

   toast.setText(message); 

  } 

  toast.show(); 

 } 

 

  

 

//사용할때 

 

toastShow("말할 메시지"); 

 

nandroid (1,620 포인트) 님이 2014년 8월 17일 답변
nandroid님이 2014년 8월 20일 채택됨
0 추천
토스트에 그런 옵션은 없는거같던데..

없으면 그냥 만들면 간단합니다..

 

그냥 반투명 까만배경에 텍스트만 입히고, visible gone으로 딜레이줘서 껏다 켯다하면 끝이기때문에 그리 어렵지않을거같네요..
기초개발자 (24,060 포인트) 님이 2014년 8월 17일 답변
0 추천

public void cancel ()

Added in API level 1

Close the view if it's showing, or don't show it if it isn't showing yet. You do not normally have to call this. Normally view will disappear on its own after the appropriate duration.

 

alkyne (22,960 포인트) 님이 2014년 8월 17일 답변
0 추천
cancel()로 기존 토스트 종료하시고 새로 생성하셔서 show() 하시는게 깔끔합니다.

cancel()후 새로 생성치 않고 show() 하시게 되면 내부의 시간카운팅의 문제인지는 몰라도

설정된 시간보다 짧게 보여질때도 있습니다.
바램 (19,650 포인트) 님이 2014년 8월 18일 답변
...