안녕하세요.
안드로이드 공부를 하다 막히는 부분이 있어서 아래와 같이 질문 드립니다.
4시간째 파고들어도 뾰족한 답이 안보이네요;;
dialog.setSingleChoiceItems()을 이용하여 A라는 창을 만들고 같은 함수를 이용해 B라는 창을 만들어서,
A라는 창을 실행 후 선택하고나서 B라는 창을 실행하고 싶습니다. (Dialog의 순서를 제어하고 싶습니다.)
어떻게해야 하는지 많은 조언좀 부탁 드립니다.
아래는 코드의 중요한 부분을 간추린 Code 입니다.
public class Map extends MapActivity {
...
ArrayList<String> sidoItem;
ArrayList<String> gugunItem;
ArrayList<String> dongItem;
static String sido;
String gugun;
String dong;
...
btn_dest.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
ZipCode zipcode = new ZipCode();
zipcode.initialize(getBaseContext());
initDialog();
}
});
}
...
private void initDialog() {
final ZipCode zipcode = new ZipCode();
sidoItem = zipcode.getSIDO();
gugunItem = zipcode.getGUGUN();
final String[] sidoItems = new String[sidoItem.size()];
try{
for (int i=0;i<sidoItem.size();i++) {
sidoItems[i] = sidoItem.get(i);
}
}catch(IndexOutOfBoundsException e){e.printStackTrace();}
// 여기서 dialog에서 선택 후 gugunItem을 담는 Dialog창을 어떻게 추가해야 하나요?
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
final AlertDialog.Builder gugun_dialog = new AlertDialog.Builder(this);
dialog.setTitle("시선택");
dialog.setSingleChoiceItems(sidoItems, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), sidoItems[which], Toast.LENGTH_SHORT).show();
sido = sidoItems[which];
dialog.dismiss();
Log.d("MyTag","dialog Invoked");
}
});
dialog.show();
}
...




onClick에서 gugunItem을 담는 Dialog만들어서 show하시면 됩니다.
근데 위와 같은 방법으로 하시면 약간 꼬이는 경우가 생길겁니다. 회색화면만 보이고 다이얼로그가 안보인다던가...
저같은 경우에는 항상 Activity 에 있는 showDialog 메소드나 dismissDialog를 이용합니다.
선택한 구군이 다를수도 있기 때문에 showDialog(id, bundle)형태의 메소드를 활용하면 동적으로 내용이 변하는 다이얼로그도
얼마든지 표시할 수 있습니다.