2012-08-23 3 views
0

В моем приложении у меня есть 2 действия: сначала панель действий со списком на каждой странице, а вторая - это активность настроек, в которой вы можете установить, сколько и какие панели действий табуляции. все работает, но последнее, что я не могу сделать, это как вернуться к первой активности, когда я устанавливаю настройки и нажимаю кнопку. Я не хочу передавать намерение и начинать работу как новый, потому что клиент JSONRpc находится в запуске, и требуется время для подключения и т. Д., И это будет раздражать. Я попытался закончить() вторую активность и вызвать setActionBar onResume(), но это работает ... любые идеи? спасибо .. Heres некоторый код:Настройки android save/reload

первая активность:

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 вы делаете то же поведение на уже заполненных объектах пользовательского интерфейса. Возможно ли, что ActionBar для этого экземпляра пользовательского интерфейса уже настроен, и вам нужно его обновить, а не повторно создать его? Трудно сказать из фрагмента кода, который вы предоставили.

+0

и как я могу обновить панель действий? –

+0

ну, вы можете сохранить ссылку на него рядом с тем, где вы определяете счетчик (как переменную-член) с помощью ActionBar actionBar; ". Затем назначьте его onCreate и измените существующий экземпляр в onResume – Syntax

0

call onBackPressed(); где u хочет вернуться к 1-й опыт.

+0

, зачем эмулировать вход UI вместо вызова final(); есть ли функциональная разница или польза? – Syntax

+0

Я думаю, что final и onBackpressed() оба разные. он не хочет передавать намерение, поэтому вызов onBackPressed с возвратом предыдущей активности – Neha

+0

Я думал, что вызов final() заставит Android завершить вашу текущую деятельность (продукт вызова onBackPressed()) и вернуться к следующему действию в стеке (эффективно возвращаться). – Syntax

Смежные вопросы