Мне нужно обновить Viewpager, который находится внутри ArrayAdapter.Когда пользователь нажимает кнопку, список, передаваемый в Viewpager, обновляется и вызывается notifyDataSetChanged.
Но ничего не происходит.Как это можно сделать, пожалуйста?Прошло 2 дня, я пробую разные вещи.Пожалуйста, помогите мне.Благодарю. Это изображение показывает немного больше
public class MyAdapter extends extends ArrayAdapter<MyObject>{
private ViewPager mViewPager;
private ViewPagerAdapter mViewPagerAdapter;
//...
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
final MyObject myObject =getItem(position);
//this part works
//viewpager loads the images
mList.clear();
mList.addAll(myObject.getListOfImgUri);
mViewPagerAdapter = new
ViewPagerAdapter(mContext, mList);
mViewPager.setAdapter(mViewPagerAdapter);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//this part never gets called
mList.addAll(myObject.getSecondListOfImgUri());
}
});
}
}
РЕДАКТИРОВАТЬ: после следующего совета, это полученный результат:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//previously, this part was never called
mList.clear();
mList.addAll(myObject.getSecondListOfImgUri());
Log.d(tag, mList.get(0));//result: Logs new Image
mViewPagerAdapter.notifyDataSetChanged()
}
});
}
}
И, Внутри ViewPager:
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
destroyItem(container, position,mViewGroup );
mInflater = LayoutInflater.from(mContext);
// mViewGroup = (ViewGroup) inflater.inflate(R.layout.view_item, container, false);
mViewGroup = (ViewGroup) mInflater.inflate(R.layout.view_item,container, false);
ImageView imageView = mViewGroup.findViewById(R.id.theImg);
Glide.with(mContext).load(mListData.get(position)).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(imageView);
container.addView(mViewGroup);
Log.d(tag, "instantiateItem: " +mListData.get(0));//result: Logs new Image
return mViewGroup;
}
Но внутри Viewpager отображается только пустая страница.