ANDROID
[안드로이드] 안드로이드 Toast 메시지 딜레이를 조정하자
언제나중수
2018. 4. 12. 11:59
기존에 LONG과 SHORT 두가지 모드로만 Toast 메시지를 활용해오다가
이번에 LENGHT_SHORT 모드로도 딜레이가 길다고 느껴져 이보다 시간을 더 단축할 필요가 있었다.
Stack overflow에서 이 문제를 Handler를 활용해 해결한 것을 참조할 수 있었다.
final Toast toast = Toast.makeText(ctx, "This message will disappear in 1 second", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 1000);위는 Stack overflow에서 보여주고 있는 코드인데, Toast 메시지를 객체화하고 show, 그리고 Handler에 postDelayed를 달아 toast.cancel()을
해주면 된다. 뒷부분에는 원하는 시간 텀을 익숙한 밀리세컨드 단위로 잘 지정해주면 된다.
handler.postDelayed 부분은 안드로이드 스튜디오에서 추천해주는 람다 코드 방식으로 변경을 해줄 수 있었는데
단순화 하고나니
handler.postDelayed(toast::cancel, 1000 );
이렇게 한 문장으로 단순화 시킬 수 있었다. 람다코드에 대해서 아직 자세히 알지 못하는데,
후에 읽기 좋은 코드, 리팩토링을 하면서 잘 활용해 보는것도 좋지 않을까 싶다~
참고 :
https://stackoverflow.com/questions/3775074/set-toast-appear-length/9715422#9715422