2010-06-10 82 views
1

我需要有在Android應用程序,可以在彼此之間具有UI的持久性被切換兩種活動如下:的Android活動UI持久

  1. 活動A啓動活動B.

  2. 用戶觸發在活動B.一些用戶界面的變化

  3. 活動B返回到活動A(通過調用onBackPressed()或類似的東西)

  4. 活動A重新啓動活動B.

我想在第2步中進行的更改在步驟可見4.

我已經使用關於活動B的singleInstance活動代碼試圖無無濟於事。我也更喜歡比簡單地將所有對象屬性寫入文件或SQLite表的更優雅的解決方案。 看起來這種行爲必須很容易實現,因爲Android會自動調用保存父Activity的UI的onBackPressed()

任何幫助,非常感謝。

回答

1

活動A啓動活動B

Intent intent = new Intent(ActivityA.this, ActivityB.class); 
startActivityForResult(intent); 

使用startActivityForResult從活動A啓動活動B.

用戶觸發 活動B

一些用戶界面的變化。

活動B返回到活動A(由 調用onBackPressed()或類似的東西 )

Intent intent = new Intent(); 
        intent.putExtra("change_value1", change1); 
        intent.putExtra("change_value2", change2); 
        setResult(RESULT_OK, intent); 
        finish(); 

活動A重新啓動活動B.

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     /* 
     * Gets invoked on finish() from ActivityB.class 
     */ 
     super.onActivityResult(requestCode, resultCode, data); 

     switch(requestCode){ 
     case 0: 

      if(resultCode == RESULT_OK){ 
       String change1, change2; 
        change1 = data.getStringExtra("change_value1"); 
       change2 = data.getStringExtra("change_value2"); 
       Intent intent = new Intent(ActivityA.this, ActivityB.class); 
           startActivity(intent); 
      } 
     } 
    } 

你可以閱讀更多關於意向here

+1

感謝您的答覆。 我仍然希望有一個更清潔的方法。直覺上,我期望一個存在,因爲android處理切換回父活動的方式。我想這是現​​在最好的方法。 感謝您的幫助。 – aakash 2010-06-11 07:32:44

+0

@aandroid - 如果你熟悉事件處理,這很直觀。你仍然通過一個'Intent'開展這項活動,那裏沒有新東西。活動A只是通過回調處理程序處理活動B的結果。 – 2010-09-24 18:04:50