2015-05-20 228 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