http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=995


위의 링크의 강좌를 보고 String[] 을 하나 선언해 두고 내용물을 갱신시킨 후 setitems 함수로 다이얼로그가 열릴때 내용물 변경이 있으면 변경된 다이얼로그를 띄우려 헀습니다.


예전에도 분명 저걸 보고 따라해서 onPrepareDialog를 이용해 성공했던 듯 한데..


최근에 다시 하려고 하니 안 되더라구요.


방식은 간단합니다 위에 나와있는것처럼 setitems(배열, 클릭 리스너) 이 함수를 쓰는데 배열 부분은 제가 미리 만들어둔 String[] 이며 내용물은 미리 다 변경이 된 후 onPrepareDialog와 onCreateDialog 가 불립니다.


로그를 띄우면서 확인을 해봐도 분명히 String[] 는 변경돼 있는데 아무리 해봐도 내용물 갱신이 안 되더군요.


예를 들어 첨에는 String[] 에 a, b, c 알파벳이 들어있었는데 새로 열 때는 1, 2, 3 숫자가 들어있다고 치면


처음 열 때 a, b, c 가 뜨고 새로 열어도 a, b, c 가 뜹니다.


예전엔 분명 저걸 따라해서 저 방식으로 내용물 변경까지 다 성공했었는데 왜 다시 하려고 하니 안 되는지 ㅠㅠ

정 안돼서 지금은 그냥 removeDialog 로 억지로 해놨지만 원인을 알고 싶습니다.


아래는 코드입니다.


protected Dialog onCreateDialog(int id){

switch(id){

case DAY_GAME_LIST :

AlertDialog.Builder builder = new AlertDialog.Builder(CalActivity.this);

builder.setItems(day_game_arr, new android.content.DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int item){

}

});

builder.setNeutralButton("Close", null);

return builder.create();

}

return null;

}

protected void onPrepareDialog(int id, Dialog dialog){

if(id == DAY_GAME_LIST){

AlertDialog.Builder builder = new AlertDialog.Builder(CalActivity.this);

builder.setItems(day_game_arr, new android.content.DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int item){

}

});

}

}