У меня есть три вкладки, которые имеют три различные фрагменты с ListView для каждого фрагмента, и это выглядит следующим образом:Refresh ViewPager фрагмент не работает должным образом
Когда я нажатие кнопки белого список пункт добавлен в tab2, и если я нажимаю фиолетовый элемент списка кнопок, добавляется в tab3. Tab3 обновляется, потому что у viewPager есть ограничение по умолчанию для экрана 1, поэтому, когда я перехожу к tab3, он создается, и на тот момент у него есть свой новый список, но tab2 уже создается, когда приложение запускается, поэтому мне нужно его обновить каким-то способом. Поэтому я создал метод updateView() в фрагменте tab2, и я вызываю этот метод в OnPageChangeListener(), он обновляет представление, но он вызывается каждый раз, когда я перехожу на tab2, и это вызывает lag.All, я хочу сделать это, чтобы удалить этот список и добавьте его в tab2, и он будет удален, и он будет добавлен в tab2, но когда я перейду к tab2, я не смогу его увидеть, сразу после закрытия приложения появится или когда вызов tab2 вызывает onResume, onCreate ...
Async метод, который загружает элементы списка в фоновом режиме: метод
public class AchievedDreamFragment extends Fragment {
ListView achievedListView;
Activity activity;
ArrayList<AchievedCloud> achievedClouds;
AchievedListAdapter achievedListAdapter;
AchievedActionHandler achievedActionHandler;
private GetAvedTask atask;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = getActivity();
achievedActionHandler = new AchievedActionHandler(activity);
}
public class GetAvedTask extends AsyncTask<Void, Void, <AchievedCloud>> {
private final WeakReference<Activity> activityWeakRef;
public GetAvedTask(Activity context) {
this.activityWeakRef = new WeakReference<Activity>(context);
}
@Override
protected ArrayList<AchievedCloud> doInBackground(Void... arg0) {
Log.e(TAG,"do in background");
//achievedActionHandler = new AchievedActionHandler(activity);
ArrayList<AchievedCloud> dreamList = achievedActionHandler.getaDreams();
return dreamList;
}
@Override
protected void onPostExecute(ArrayList<AchievedCloud> adrmList) {
Log.e(TAG,"on Post execute");
if (activityWeakRef.get() != null
&& !activityWeakRef.get().isFinishing()) {
achievedClouds = adrmList;
if (adrmList != null) {
if (adrmList.size() != 0) {
achievedListAdapter = new AchievedListAdapter(activity,
adrmList);
achievedListView.setAdapter(achievedListAdapter);
achievedListAdapter.notifyDataSetChanged();
}
}
}
}
}
UpdateView() в одном фрагменте, где AsyncTask является:
public void updateView() {
atask = new GetAvedTask(activity);
atask.execute((Void) null);
}
ViewPager OnPageChangeListener():
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if(position == 1){
achievedDreamFragment.updateView();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Я попробовал, а на адаптере getItemPosition POSITION_NONE, но это не исправить какие-либо идеи, что я мог бы попробовать?
когда я пролистывание tab2 после нажатия кнопки белой Я хочу видеть, что пункт там – kosas
чувак все это время я был что-то вроде этого, глядя СПАСИБО !!! – kosas