안드로이드 개발 질문/답변
(글 수 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(
int
total) 를 만드셨는대,,, 왜 사용을 하지 않으셨을까요..