簡體   English   中英

重新加載整個視圖后,如何保存tablayout項的狀態和相關的viewpager內容位置?

[英]How do I save the state of my tablayout item and associated viewpager content position after reloading the whole view?

我有一個與viewpager關聯的tablayout。 每次我拉動刷新,目前我嘗試重新加載整個頁面(調用完成並再次啟動活動)。我的標簽布局中有4個項目(動態),我想這樣,每次刷新時,我可以在刷新之前保存所選項目的狀態,然后在重新加載整個屏幕后顯示它。

我在線推薦了幾件但沒有運氣的東西。

這是我可能使用的代碼,但不知道如何去做:

 void selectPage(int pageIndex)
    {
        mViewPager.setCurrentItem(pageIndex);
        mTabLayout.setupWithViewPager(mViewPager);
    }

也,

@BindView(R.id.lists_view_pager)
    ViewPager mViewPager;

    @BindView(R.id.lists_refresh)
    SwipeRefreshLayout mRefresh;

    @BindView(R.id.tab_layout)
    TabLayout mTabLayout;

在創建我打電話:

mRefresh.setOnRefreshListener(this::refreshassistant);

refreshassistant如下:

 public void refreshassistant(){
        finish();
        startActivity(getIntent());
        mPagerAdapter.notifyDataSetChanged();
        overridePendingTransition(0, 0);
        mPresenter.onRefresh();
    }

我希望如果我選擇選項卡2,它顯示選項卡2的內容,然后當我刷新/重新加載整個頁面時,我能夠返回選項卡2及其內容。 知道如何去做嗎?

提前致謝!

您可以使用以下兩種方法來存儲和檢索頁面中的值:

在偏好中設置值:

public static void setDefaults(String key, String value, Context context) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString(key, value);
    editor.commit();
}

從首選項中檢索數據:

public static String getDefaults(String key, Context context) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    return preferences.getString(key, null); //if no value found returns null
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM