2012-03-22 44 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類。