gpt4 book ai didi

android - 如何在 ViewPager : 中重新创建所有 fragment

转载 作者:IT老高 更新时间:2023-10-28 23:40:39 25 4
gpt4 key购买 nike

我有这个问题,我有一个带有 ViewPager 和一个 ViewPagerAdapterFragmentActivity

在这个 ViewPager 中,我有 3 个 Fragments,每个 fragment 都包含一个 TableLayout,它使用 2dArrayList 以编程方式填充。

单击 FragmentActivity 布局中的按钮,我过滤 2dArrayList 中的数据,基本上需要重新创建所有 3 个 Fragments使用新数据集(在所有数据集中运行 onCreateView 方法)。

所以我为这个按钮创建了一个 onClickListener:

 private class SlicerSelectedOnClickListener implements OnClickListener {

private ODSharedSlicer slicer;

public SlicerSelectedOnClickListener(ODSharedSlicer slicer) {
super();
this.slicer = slicer;
}

public void onClick(View v) {
String slicerValue = ((Button) v).getText().toString();
Log.d(TAG,"Slicer value: "+ slicerValue +" chosen");
application.currentReport.getODSharedSlicers().get(0).getSharedSlicerSelectedMemebers().add(slicerValue);

ViewGroup parent = (ViewGroup) ((Button) v).getParent();

for (int i = 0; i < parent.getChildCount(); i++)
{
if ((parent.getChildAt(i) != v) && (parent.getChildAt(i) instanceof ToggleButton))
{
((ToggleButton) parent.getChildAt(i)).setChecked(false);
}
}

mPagerAdapter.notifyDataSetChanged();
}
}

如您所见,我有一个 mPagerAdapter.notifyDataSetChanged();如此处建议:

How to recreate fragment with viewpager intentionally?

在此方法结束时,因此我希望适配器重新创建所有 Fragment,但任何 fragment 中的 onCreateView 都不会运行。

任何人都可以建议我做错了什么。任何帮助将不胜感激。

最佳答案

对于那些仍然面临同样问题的人,当我拥有带有七个 fragment 的 ViewPager 时,我遇到了同样的问题。这些 fragment 的默认设置是从服务中加载英文内容,但这里的问题是我想从设置 Activity 中更改语言,完成设置 Activity 后,我希望主 Activity 中的 ViewPager 将 fragment 刷新为如果用户在此处选择阿拉伯语,则匹配用户的语言选择并加载阿拉伯语内容我从第一个 trr 开始所做的工作:D

1.你必须使用 FragmentStatePagerAdapter*

  1. mainActivity 我重写了 onResume 并做了以下操作

     if (!(mPagerAdapter == null)) {

    mPagerAdapter.notifyDataSetChanged();


    }
  2. 我在 mPagerAdapter 中覆盖 getItemPosition() 并使其返回 POSITION_NONE。

     @Override
    public int getItemPosition(Object object) {

    return POSITION_NONE;
    }

像魅力一样工作

关于android - 如何在 ViewPager : 中重新创建所有 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com