2012-03-22 53 views
0

我想显示loadingActivity而“activity1”正在执行一些代码(工作),之后再显示activity1。但是,如果我不想再次启动activity1,则只需在doSomeStuff结束时切换其布局。谢谢。安卓在活动/布局之间切换

活性1

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Intent myIntent = new Intent(getApplicationContext(), loadingActivity.class); 
     startActivityForResult(myIntent, 0); 

     //Do some stuff while loadingActivity is showed 

     doSomeStuff() 

     //here I want to show again this activity and hide loading one 

loadingActivity

public class loadingActivity extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.main); 
     setContentView(R.layout.loading); 

    } 

回答

2

为此,您应该使用ProgressDialog,这将让你轻松展现加载指示灯,一旦工作完成后,你可以很容易地将其删除。下面的代码应该适合你。

显示对话框:

ProgressDialog dialog = new ProgressDialog(YourActivityClass.this); 
    dialog.setMessage("Loading Activity..."); 
    dialog.show(); 

    //Do your long running work here 

辞退对话框:

dialog.dismiss(); 

,如果你想显示在不同的方法关闭它可以设置对话框,一类级别的变量。

同样从看你的代码,如果你的长时间运行的工作没有发生在后台线程上,你可能会阻止从未加载的活动。您不能在onCreate内部长时间运行工作,而无需将工作转移到后台线程。为了在Android中轻松使用线程,您应该使用AsyncTask类。