2012년 1월 17일 화요일

AlertDialog 버튼 활성화 설정


showDialog() 함수를 부르면 onCreateDialog() 함수가 불리고 다음 onPrepareDialog() 함수가 불린다.

onCreateDialog() 함수에서 AlertDialog 를 생성하고 getButton() 함수로 버튼을 얻으려고 해봤지만 null 값이 리턴된다.

onPrepareDialog() 함수에서 button 을 얻어와 활성화 설정을 하면 된다.

예)
@Override
protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {

 switch (id) {
 case 0:
  ((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
  break;
 default:
  break;
 }
 super.onPrepareDialog(id, dialog, args);
}

팁) 다이얼로그가 떠 있는 상태에서 showDialog() 함수를 부르면 onCreateDialog() 함수는 불리지 않고 onPrepareDialog() 함수만 불린다.
 - 주기적으로 업데이트가 필요하면 다이얼로그가 떠 있는 상태에서 showDialog() 를 부르고 처리는 onPrepareDialog() 함수에서 하게 처리하면 된다.

참고: http://tjandroid.blogspot.com/2011/12/dialog.html
(Dialog 내용 주기적으로 업데이트하기)

댓글 없음:

댓글 쓰기