안녕하세요. XML 파싱 공부 중인 학생입니다.
문제는 XMLparser로 값을 받고 파싱하기 전에 progress창을 띄우려고 하는데
파싱이 된 후에 progress 창이 on 되었다가 off 됩니다.
분명 onclick 메서드가 불리면 onCreateDialog() 의 메서드에 로그가 바로 찍히긴 하는데요.
private static final int DIALOG_PROGRESS = 0;
ProgressDialog mProgressDialog =null;
public void onClick(View v) {
showDialog(DIALOG_PROGRESS); // 다이어로그 생성
runOnUiThread(new Runnable() {
public void run() {
getMovieInfo(); //xml 파싱함수
adapter.notifyDataSetChanged();
mProgressHandler.sendEmptyMessage(0); //종료
}
});
} // onclick 종료
Handler mProgressHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(mProgressDialog != null && mProgressDialog.isShowing()){
mProgressDialog.dismiss();
}
}
};
protected Dialog onCreateDialog(int id) {
Log.d("H","onCreateDialog id " + id );
switch(id)
{
case DIALOG_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setMessage("Loading...");
mProgressDialog.show();
break;
default:
break;
}
return mProgressDialog;
}

안드로이드 개발자입니다.
왜 UIThread에서 XML 파싱을 하시나요?
쓰레드 사용법이 좀 이상합니다.
runOnUiThread말고 그냥 쓰레드에서 돌려보세요.