激活“首选项”中的功能并动态添加选项卡

时间:2018-05-24 21:43:24

标签: android

我的主要活动最初有4个标签,我使用此代码添加:

    mMainPagerAdapter = new MainPagerAdapter(getSupportFragmentManager(), getApplicationContext());
    viewPager = findViewById(R.id.viewpager);
    viewPager.setAdapter(mMainPagerAdapter);
    mTabLayout = findViewById(R.id.tabs);
    mTabLayout.setupWithViewPager(viewPager);

现在,用户可以激活首选项中的功能:

PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().putBoolean(FEATURE_ENABLED, true).apply();

用户选择此选项并返回主活动后,必须在TabLayout中添加附加标签。用户无法撤消此操作(新选项卡将永久保留,无法再次删除)。最好的方法是什么?现在,我在主要活动中覆盖onResume方法,并执行以下操作:

@Override
protected void onResume() {
    super.onResume();
    int currentNumOfTabs = mMainPagerAdapter.getCount();
    boolean featureEnabled = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(SettingsFragment.FEATURE_ENABLED, false);
    if (featureEnabled && currentNumOfTabs == 4) {
        mMainPagerAdapter.setNumOfTabs(5);
        mMainPagerAdapter.notifyDataSetChanged();
    }
}

我觉得这不是正确的做法。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。我注册了一个偏好更改事件并更新了适配器:

   else if(!pid1 && !pid2){ //child #1