본문 바로가기

ANDROID

[안드로이드] 안드로이드 Toast 메시지 딜레이를 조정하자

기존에 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