2012-08-23 49 views
0

在我的應用程序中,我有2個活動,第一個是在每個頁面上有列表的操作欄,第二個是設置活動,您可以在其中設置多少個以及哪些標籤操作欄包含。一切正常,但最後一件事,我無法完成的是,當我設置設置並單擊按鈕時,如何返回到第一個活動。我不想傳遞意圖,並開始活動作爲新的,因爲JSONRpc客戶端是在開始,它需要一段時間連接等,這將是討厭的。我嘗試完成()第二個活動,並調用setActionBar onResume(),但這不工作......任何想法??感謝..繼承人一些代碼:android保存/重新加載設置

第一項活動:

public void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 

Rubriky = ((HNapp) this.getApplication()).getRubriky(); 
count=((HNapp) this.getApplication()).getCount(); 

int catIndex = savedInstanceState == null ? 0 :savedInstanceState.getInt("catIndex", 0); 
setUpActionBar(catIndex); 
} 
//my try 
public void onResume(Bundle savedInstanceState){ 
    super.onResume(); 
    int catIndex = savedInstanceState == null ? 0 : savedInstanceState.getInt("catIndex", 0); 
    Rubriky = ((HNapp) this.getApplication()).getRubriky(); 
    count=((HNapp) this.getApplication()).getCount(); 
    setUpActionBar(catIndex); 
} 

//setting up actionbar 
public void setUpActionBar(int selTab) { 

    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayShowTitleEnabled(false); 

    CABNavHan handler = new CABNavHan(this); 

     actionBar.setNavigationMode(android.app.ActionBar.NAVIGATION_MODE_TABS); 
     int i; 
     for (i = 0; i < count; i++) { 
      actionBar.addTab(actionBar.newTab().setText(Rubriky[i]).setTabListener(handler)); 
     } 
    actionBar.setSelectedNavigationItem(selTab); 
    actionBar.setDisplayUseLogoEnabled(true); 
    } 

回答

0
  1. 你有沒有驗證計數更新的onResume你所期望的(假設當你完成()設置活動返回到在後面堆棧中的現有動作)?

  2. 我注意到onResume你在已經填充的UI對象上做了同樣的行爲。這個UI實例的ActionBar是否已經配置好,你需要更新它而不是重新創建它?從您提供的代碼片段中很難判斷出來。

+0

以及如何更新操作欄? –

+0

以及你可以在你定義count(作爲一個成員變量)的地方附近存儲一個對「ActionBar actionBar;」的引用。然後將其分配onCreate並改變onResume中的現有實例 – Syntax

0

call onBackPressed();你想回到 第一次。

+0

爲什麼模擬UI輸入而不是調用final();有沒有功能差異或好處? – Syntax

+0

我認爲final和onBackpressed()都是不同的。他不想傳遞意圖,所以調用onBackPressed並回顧之前的活動 – Neha

+0

我認爲調用final()會導致Android完成當前的Activity(調用onBackPressed()的產品)並返回到堆棧中的下一個活動(有效回去)。 – Syntax