2015-05-20 184 views
0

我在顯示主要活動的佈局時遇到問題:未顯示android佈局

我使用ImageView創建ActivityA。

在onCreate()中,我啓動了一個AsyncTask,它從Internet檢索內容並打開一個ActivityB。

當我啓動我的應用程序時,它立即顯示ActivityB。

public class ActivityA extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     MyTask mytask = new MyTask(); 
     mytask.execute(); 

    } 

}

我的MainActivity xml文件如下:

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

    <ImageView 
     android:id="@+id/home_page" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/ic_home_page" /> 

    <ProgressBar 
     android:id="@+id/marker_progress" 
     style="?android:attr/progressBarStyle" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:indeterminate="true" /> 

</RelativeLayout> 

的進度條來顯示的AsyncTask的加載過程。

感謝幫助

+0

顯示你在哪裏/如何開始活動B.最有可能的,直接調用任務 – codeMagic

+1

顯示AsyncTask代碼。 –

+0

哪些是不顯示其佈局的活動? A還是B? – GVillani82

回答

0
public class ActivityA extends Activity { 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      MyTask mytask = new MyTask(); 
      mytask.execute(); 
     } 
    } 

    private class MyTask extends AsyncTask<String, String, String> { 

     @Override 
     protected String doInBackground(String... params) { 
      // code for retrieve contents from Internet 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      // cancel ProgressBar and start activity B here like 
      Intent i = new Intent(A.this, B.class); 
      startActivity(i); 
     } 

     @Override 
     protected void onPreExecute() { 

      // showing ProgressBar 
     } 

    } 

不要忘了提一個活動的啓動。 我希望它能幫助你解決這個問題。

+0

謝謝你的回答......這就是我實際上正在做的......但它似乎仍然沒有工作......這可能是一個暫時性問題嗎? Asynctask的執行速度非常快,我們看不到第一個佈局。 – saloua