2011년 9월 7일 수요일

Toast 메시지 시간 관리

Toast 메시지는 사용하기 쉽지만 예상 외로 알지 못하는 부분이 많았다.

간단한 함수 설명
 - Toast.makeText() 함수는 Toast 객체를 만든다.
 - Toast.show() 함수는 toast 메시지를 보여준다.
 - Toast.cancel() 함수는 toast 메시지를 즉시 없앤다.

매번 Toast.makeText() 함수를 사용해서 toast 메시지를 보여주게 하다 보면 여러개 의 toast 들이 함수가 불린 순서대로 보이는 현상을 보게 된다.

Toast 메시지를 바로바로 변환해 주기 위해서는 Toast.makeText() 함수로 만든 Toast 객체를 전역 변수로 저장해 놓고 Toast.cancel() 함수와 Toast.show() 함수를 호출해 주면 된다.

예)
private Toast toast;

@Override
protected void onCreate() {
 toast = Toast.makeText(this, "Text", Toast.LENGTH_SHORT);
}

void showToast(CharSequence s) {
 //toast.cancel();  // 2012-02-15 수정: cancel 을 하는 경우 toast 가 보이지 않는 경우가 있었음
 toast.setText(s);
 toast.show();
}

만약 Toast 를 기본 설정된 값보다 오래 보여주고 싶으면 Toast.makeText() 함수로 만든 Toast 객체를 전역 변수로 저장해 놓고 주기적으로 Toast.show() 함수를 부르면 된다.

댓글 없음:

댓글 쓰기