2016-03-25 3 views
1

Как сохранить и вернуть позицию вкладки, когда пользователь нажмет кнопку «Назад»?Сохранение позиции tabLayout при нажатии кнопки «Назад»

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    ViewPager vpPager = (ViewPager) findViewById(R.id.viewpager); 
    adapterViewPager = new MyPagerAdapter(getSupportFragmentManager()); 
    vpPager.setAdapter(adapterViewPager); 

    // Give the TabLayout the ViewPager 
    tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
    tabLayout.setTabMode(TabLayout.MODE_FIXED); 
    tabLayout.setupWithViewPager(vpPager); 

    // Attach the page change listener inside the activity 
    vpPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt(POSITION, tabLayout.getSelectedTabPosition()); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    viewPager.setCurrentItem(savedInstanceState.getInt(POSITION)); 
} 

Я использую onBackPressed() для этого? Помощь очень ценится. Благодаря!

ответ

1

Вы можете сделать это с задней прессе следующим образом:

@Override 
public void onBackPressed() { 
    int pos = mViewPager.getCurrentItem(); 
} 

и когда вы еще в экране вы можете установить положение пейджера

@Override 
public void onResume(){ 
super.onResume(); 
// put your code here... 

if(mViewPager !=null) 

mViewPager.setCurrentItem(pos); 

} 
+0

в значительной степени это^только с добавлением сохраняя его в SharedPreferences, о котором вы должны знать, как это сделать в этот момент. – Vucko

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