2016-03-30 6 views
0

У меня есть операция A, содержащая вкладку с двумя вкладками: tab1 в позиции 1 и tab2 в позиции 2.
Каждая вкладка содержит ресайклинг с элементами с кликабельными элементами. Нажатие начинает действие B.
Если вы выбираете tab1 и нажимаете на один из его элементов, начинается действие B и с помощью кнопки «Назад» я возвращаюсь к активности A, где выбрана tab1. Но если я делаю то же самое с tab2, tab1 по-прежнему остается выбранным, когда я возвращаюсь к активности A.
Как я могу запомнить выбранную вкладку, чтобы всякий раз, когда я покидаю активность B, отображается ранее выбранная вкладка, а не всегда tab1 ?Запомните выбранную вкладку в android

+0

Возможно, переопределить 'onStop()' для записи текущей выбранной вкладки, а затем установить эту вкладку в 'onResue()' может работать? – moarCoffee

+0

См. Этот [связанный вопрос] (http://stackoverflow.com/questions/5317660/save-the-tab-state-during-orientation-change/5317710#5317710), но используйте 'onPause()' и 'onResume() вместо этого. – OJ7

+0

Сохраните свою позицию в 'onPause()' в 'SharedPreferences' и восстановите правильную вкладку в' onResume() '. – Vucko

ответ

0

Убедитесь, что вы реализуете навигацию надлежащим образом:

<application ... > 
... 
<!-- The main/home activity (it has no parent activity) --> 
<activity 
    android:name="com.example.myfirstapp.MainActivity" ...> 
    ... 
</activity> 
<!-- A child of the main activity --> 
<activity 
    android:name="com.example.myfirstapp.DisplayMessageActivity" 
    android:label="@string/title_activity_display_message" 
    android:parentActivityName="com.example.myfirstapp.MainActivity" > 
    <!-- Parent activity meta-data to support 4.0 and lower --> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.myfirstapp.MainActivity" /> 
</activity> 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    ... 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    // Respond to the action bar's Up/Home button 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

Источник: https://developer.android.com/training/implementing-navigation/ancestral.html

+0

Также ему необходимо рассмотреть изменение ориентации. Изменение ориентации не сохраняет состояние выбора макетов табуляции –

+0

@ Матиас Элорриага с использованием NavUtils.navigateUpFromSameTask() не работает. Первая вкладка все еще выбрана. – edmond

0

Установка

android:launchMode=singleTop 

для начального действия решает проблему для меня. Не нужно сохранять какую-либо позицию табуляции.

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