我有使用 TabLayout 和 ViewPager 的应用程序。
我让它工作顺利而且很好,但困扰我的事情是,当我从标签打开活动时,我希望下次返回该活动时打开相同的标签。
使用 SharedPreferences 生产我需要的东西的最佳实践是什么?
这是据我所知:
private SharedPreferences prefs;
private String LAST_TAB = "last_tab";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
prefs = this.getSharedPreferences("com.myapp", Context.MODE_PRIVATE);
}
@Override
public void onResume() {
int selTab = prefs.getInt(LAST_TAB, 0);
/* TODO: How do I procrammatically select tab? */
}
private void setTab() {
TabLayout tabLayout = (TabLayout)findViewById(R.id.myTabs);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int selTab = tab.getPosition();
viewPager.setCurrentItem(selTab);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(LAST_TAB, selTab);
editor.apply();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}