2010-10-25 10 views
0

Désolé que je pose une telle question, mais je suis essaie de faire ce une course pendant des heures, et je ne suis pas trouver l'erreur ...Quel est le problème avec ce code?

public class Main extends ListActivity { 
/** Called when the activity is first created. */ 

ProgressDialog dialog; 

@Override 
public synchronized void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);  
    new WebLoader().doInBackground("http://sample.sample.com/sample.xml"); 
} 

public class WebLoader extends AsyncTask<String, Void, String> { 

    @Override 
    protected String doInBackground(String... params) { 
     String result = ""; 

     try{ 
      URL url = new URL(params[0]); 
      URLConnection conn = url.openConnection(); 
      InputStream is = conn.getInputStream(); 
      BufferedInputStream bis = new BufferedInputStream(is); 
      ByteArrayBuffer baf = new ByteArrayBuffer(2048); 

      int current = 0; 
      while((current = bis.read()) != -1) 
      { 
       baf.append((byte)current); 
      } 

      result = new String(baf.toByteArray()); 
     } 

     catch(Exception e) 
     { 
      Log.e("gullinews", e.getMessage()); 
     } 


     return result; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     dialog.dismiss(); 
    } 

    @Override 
    protected void onPreExecute() { 
     dialog = ProgressDialog.show(getApplicationContext(), "", 
       "Loading. Please wait...", true); 
    }  
    } 

}

Courir avec un débogueur montre que les données XML sont téléchargées, mais il y a juste un écran noir. Quand j'ai essayé "setContenView (R.layout.main);" avec main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <ListView android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@android:id/list" /> 
</LinearLayout> 

// Edit: ok, je résolus d'une erreur, n'a pas résolu le reste. Source mise à jour.

Mon problème principal est maintenant, que je n'ai pas une idée pourquoi le ProgressDialog n'apparaît pas. le repos devrait être noir, c'est vrai.

+1

Qu'attendiez-vous? Votre mise en page est vide – EboMike

+0

Quelles sont les erreurs? Veuillez couper et coller des traces de pile, etc –

+0

D'accord, les erreurs sont les suivantes: – EnflamedSoul

Répondre

0

new WebLoader().doInBackground("http://sample.sample.com/sample.xml");

Ce n'est pas la façon dont vous utilisez un AsyncTask. Avez-vous lu quelque document que ce soit?

+0

Mh. Pardon. Vieux code source, a fait cette erreur, mais maintenant je ne le fais plus. Je sais que c'est .execute (""); – EnflamedSoul