2012-06-13 3 views
0

Salut, j'ai un AysncTask que je veux gonfler une vue de chargement alors que cela fonctionne quand il est fini de le cacher. Est-ce que quelqu'un sait comment faire ça? à ce moment, il ne montre pas la vue de chargement.Android Afficher et masquer les vues dans AsyncTask

ce que j'ai essayé

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    loadingView = LayoutInflater.from(getBaseContext()).inflate(R.layout.loadingcell, 
      null); 

    //Check Preferences which sets UI 

    checkPreferences(); 
    PostTask posttask; 
    posttask = new PostTask(); 
    posttask.execute(); 

} 




    @Override 
    protected Boolean doInBackground(Void... params) { 
     boolean result = false; 


     loadFixtures(); 
     publishProgress("progress"); 
     loadResultsFeed(); 
     publishProgress("progress"); 
     loadNewsFeed(); 
     publishProgress("progress"); 
     return result; 
    } 


    protected void onProgressUpdate(String... progress) { 
     StringBuilder str = new StringBuilder(); 
      for (int i = 1; i < progress.length; i++) { 
       str.append(progress[i] + " "); 



      } 
    } 

     @Override 
    protected void onPostExecute(Boolean result) { 
     super.onPostExecute(result); 
     Log.v("BGThread", "begin fillin data"); 
     FillData(); 
     loadingView.setVisibility(View.GONE); 
     } 
} 

loadingcell.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/white" 
    android:id="@+id/loadingcell"> 


    <include 
     layout="@layout/header" /> 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="87dp" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="115dp" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@+id/progressBar1" 
     android:gravity="center" 
     android:text="Loading..." 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@color/blue" /> 

</RelativeLayout> 
+0

[Voir ce] (http://samir-mangroliya.blogspot.in/p/android-asynctask-example.html) –

+0

ne se répète pas ur Que..duplicate. http://stackoverflow.com/q/11013505/1289716 – MAC

+0

@SamirMangroliya Salut Samir est-il un moyen que je peux le faire sans utiliser une boîte de dialogue je veux juste une page qui a une vue de texte qui dit chargement et un spinner puis sur postexecute Avoir cacher –

Répondre

0

Vous devez avoir un contenu pour le Activity - que vous pouvez définir utiliser setContentView

1

Vous n'êtes pas en utilisant un AsyncTask dans votre code. Utilisez quelque chose comme ceci:

private class doSomething extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected void onPreExecute() { 
     //Inflate you view or do anything here before loading stuff 
    } 

    protected Void doInBackground(Void... urls) { 
     //loading stuff 
    } 

    protected void onProgressUpdate(String... progress) { 
     //change your UI - like a progressbar 
    } 

    @Override 
    protected void onPostExecute(String unused) { 
     //Hide the progressbar 
    }