2011-01-07 3 views
0

Привет, Я пытаюсь получить ProgressDialog, работая, когда я получаю XML из Интернета. Проблема заключается в том, что диалог появляется, как только XML загружается и отображается. Если впоследствии я его убью, он вообще не появится. Любые идеи, что делать? Я новичок в андроид развития и это мое первое приложение, я уже искал в сети, но не нашел рабочее решение .. Вот сокращенный код:Отображается ProgressDialog после XML.

public class showReleases extends Activity { 
    SitesList sitesList = null; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.releasedetails); 
    ProgressDialog dialog = new ProgressDialog(showReleases.this); 
    dialog.setMessage("please wait"); 
    dialog.setIndeterminate(true); 
    dialog.setCancelable(false); 
    dialog.show(); 

    getFeed2(); 

    dialog.dismiss(); 
} 


public void getFeed2() { 
    Bundle extras = getIntent().getExtras(); 

    try { 

     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 

     URL sourceUrl = new URL("http://www.it-leaked.com/app/details.php?id=" + extras.getString("id")); 

     MyXMLHandler myXMLHandler = new MyXMLHandler(); 
     xr.setContentHandler(myXMLHandler); 
     xr.parse(new InputSource(sourceUrl.openStream())); 

    } catch (Exception e) { 
     System.out.println("XML Pasing Excpetion = " + e); 
    } 

    sitesList = MyXMLHandler.sitesList; 

    TextView txtView = (TextView)findViewById(R.id.TextView01); 
    txtView.setText(sitesList.getTitle().get(0)); 
    TextView txtView2 = (TextView)findViewById(R.id.TextView02); 
    String myTracklist = sitesList.getTracklist().get(0); 
    myTracklist = myTracklist.replace("||||", "\n"); 
    txtView2.setText(myTracklist); 
} 
} 

Заранее спасибо

+0

yuck @ xml, use json! – binnyb

ответ

2

Читайте дальше на AsynTask, он предназначен только для этого прецедента.

0

Чтобы создать диалог прогресса, вы должны переопределить "onCreateDialog" в вашей деятельности:

@Override 
protected Dialog onCreateDialog(int id) { 
    ProgressDialog dialog = new ProgressDialog(this); 
    dialog.setMessage("loading..."); 
    dialog.setIndeterminate(true); 
    dialog.setCancelable(true); 
    return dialog; 
} 

и отобразить его с помощью "ShowDialog" перед загрузкой данных XML:

showDialog(0); 

и «removedDialog », чтобы избавиться от него:

context.removeDialog(0); 
+0

ive попробовал это и его то же, что и в моем примере. progressdialog вообще не отображается, и если я удалю removeDialog (0), я могу увидеть его загрузку после загрузки XML – robs