안드로이드 개발 질문/답변
(글 수 45,052)
public class LocalSearch extends ListActivity {
Handler handler = new Handler();
protected static final int DIALOG_PROGRESS = 1;
protected static final int MAX_PROGRESS = 100;
ProgressDialog mProgressDialog = null;
ListView list;
final ArrayList<Pension> m_pension = new ArrayList<Pension>();
PensionAdapter m_adapter;
public Dialog onCreateDialog(int id) {
switch(id) {
case DIALOG_PROGRESS:
mProgressDialog = new ProgressDialog(LocalSearch.this);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setMessage("NOW LOADING");
mProgressDialog.setCancelable(true);
mProgressDialog.setMax(MAX_PROGRESS);
return mProgressDialog;
}
return null;
}
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.local);
Intent intent = getIntent();
final String local = intent.getExtras().getString("local").toString();
final String sido = intent.getExtras().getString("sido").toString();
m_adapter = new PensionAdapter(this, R.layout.row, m_pension);
showDialog(DIALOG_PROGRESS);
mProgressDialog.setProgress(0);
new Thread() {
public void run() {
try
{
URL text = new URL("http://kr/parser.php");
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(text.openStream(), "UTF-8");
String uri = "";
while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
switch(parser.getEventType()){
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.TEXT:
break;
case XmlPullParser.START_TAG:
if(parser.getName().equals("pension")){
if(parser.getAttributeValue(2).equals(sido)){
if(parser.getAttributeValue(3).contains(local)){
uri = "http://kr/" + parser.getAttributeValue(1);
Pension p1 = new Pension(parser.getAttributeValue(0), uri, parser.getAttributeValue(10), parser.getAttributeValue(2), parser.getAttributeValue(3));
m_pension.add(p1);
}
}
}
break;
}
parser.next();
}
mProgressDialog.setProgress(100);
handler.post(new Runnable() {
public void run() {
viewGo();
dismissDialog(DIALOG_PROGRESS);
mProgressDialog.dismiss();
}
});
}
catch(Throwable t) {
Toast.makeText(LocalSearch.this, "실패: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
}.start();
}
public void viewGo() {
list = (ListView)findViewById(android.R.id.list);
list.setAdapter(m_adapter);
}
});
}
public void progressStatus(int total) {
mProgressDialog.setProgress(total);
}
이런식으로 되어 있는데..
while문안에서 어떻게 줘야 되는지를 모르겠네요 ㅠㅠ
파싱 완료시점을 기준으로 알아서 딱딱 나눠서 증가하게 하려면 어떻게 해야되는거죠?




progressStatus(inttotal) 를 만드셨는대,,, 왜 사용을 하지 않으셨을까요..