У меня есть эта проблема, у меня есть FragmentActivity
с ViewPager
и ViewPagerAdapter
.
В этом ViewPager у меня есть 3 Fragments
, каждый из которых содержит 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();
Как предлагается здесь:
Как воссоздать фрагмент с помощью viewpager намеренно?
в конце этого метода. Поэтому я ожидаю, что адаптер воссоздает все Fragment
s, но onCreateView
из любого из фрагментов никогда не запускается.
Может ли кто-нибудь предположить, что я делаю неправильно. любая помощь будет оценена.