У меня есть ViewPager . При изменении некоторых данных я снова устанавливаю адаптер для ViewPager с помощью вызова ViewPager.setAdapter (новый адаптер) . Что мне интересно, фрагментвоссоздать (он переходит на onDestroyView , а затем onCreateView ), и мой Edittext не может снова установить текст. И если я удаляю весь Fragment из FragmentTransaction, а затемsetAdapter, Фрагмент создайте новый -> мой текст редактирования Правильно установите текст. Так что Фрагмент воссоздает сам себя НЕ из потока пользовательского интерфейса? (Потому что я пробую edditext.post и мой edditext из первой сценарии). Вот код
Адаптер:
public class PagerAdapter extends FragmentPagerAdapter {
private final ArrayList<Fragment> fmAct;
public PagerAdapter(FragmentManager supportFragmentManager, ArrayList<Fragment> fm) {
super(supportFragmentManager);
fmAct = fm;
}
@Override
public Fragment getItem(int position) {
return fmAct.get(position);
}
@Override
public int getCount() {
return fmAct.size();
}
@Override
public int getItemPosition(@NonNull Object object) {
return POSITION_NONE;
}
@Override
public CharSequence getPageTitle(int position) {
return ((PrFragment) getItem(position)).getFragmentName();
}
, что я делаю, когда переустанавливаю адаптер
fm.clear();
fragmentAttendanceCome = new FragmentAttendanceCome();
fragmentAttendanceCome.setFragmentName(getString(R.string.title_attendance));
fragmentAttendanceCome.setParentActivity(this);
fragmentAssessment = new FragmentAssessment();
fragmentAssessment.setFragmentName(getString(R.string.daily_evaluation));
fragmentAssessment.setParentActivity(this);
fragmentInfo = new FragmentInfo();
fragmentInfo.setParentActivity(this);
fragmentInfo.setFragmentName(getString(R.string.title_infomation));
fm.add(fragmentAttendanceCome);
fm.add(fragmentAssessment);
fm.add(fragmentInfo);
viewPager.setAdapter(new PagerAdapter(getSupportFragmentManager(), fm));
Это мой фрагмент:
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
textview.setText(data)
// i already Bind it but i lazy to copy it,everything work well
}