如何更新每次搜索都会显示我的搜索结果的 viewpager
how to update this viewpager that shows my search result with every search
我有一个图书搜索应用程序,可以从服务器获取图书图片。
如何删除我的 viewpager 中显示的先前搜索结果并显示新结果?
我尝试将 Viewpageradaptor 设置为 null 并制作另一个适配器,但它不起作用并且应用程序崩溃。
public class MyViewPagerAdapter extends PagerAdapter {
private Context context;
public String data;
public MyViewPagerAdapter(Context context,Data data) {
this.context = context;
//getting url from main activity
this.data=data;}
@Override
public Object instantiateItem(@NonNull ViewGroup collection, int position) {
LayoutInflater inflater = LayoutInflater.from(context);
ViewGroup layout = (ViewGroup)inflater.inflate(R.layout.object_details_image, collection, false);
ImageView pagerImage = layout.findViewById(R.id.pagerImage);
//sending image view to another class to get the image from the internet and show it in my imageview
//Downloader is a class that I made to download the images and show them in my Imageview
new Downloader().showImage(pagerImage ,data);
collection.addView(layout);
return layout;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object view) {
container.removeView((View) view);
}
@Override
public int getCount() {
return this.images.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
}
在我的主要 activity
viewPager.setAdapter(new MyViewPagerAdapter(MyApp.getContext(), "image url")
您只需清除 this.images
array/List/ArrayList 并在 viewPager 适配器上调用 adapter.notifyDataSetChanged();
。
如果 this.images
是一个 ArrayList 那么:
adapter.images.clear();
adapter.notifyDataSetChanged();
如果 this.images
是一个列表,则:
adapter.images = new ArrayList();
adapter.notifyDataSetChanged();
每次我想进行另一次搜索时,只需创建一个新的适配器对象即可。
viewPager.setAdapter(new MyViewPagerAdapter(MyApp.getContext(), "new image url")
我有一个图书搜索应用程序,可以从服务器获取图书图片。 如何删除我的 viewpager 中显示的先前搜索结果并显示新结果?
我尝试将 Viewpageradaptor 设置为 null 并制作另一个适配器,但它不起作用并且应用程序崩溃。
public class MyViewPagerAdapter extends PagerAdapter {
private Context context;
public String data;
public MyViewPagerAdapter(Context context,Data data) {
this.context = context;
//getting url from main activity
this.data=data;}
@Override
public Object instantiateItem(@NonNull ViewGroup collection, int position) {
LayoutInflater inflater = LayoutInflater.from(context);
ViewGroup layout = (ViewGroup)inflater.inflate(R.layout.object_details_image, collection, false);
ImageView pagerImage = layout.findViewById(R.id.pagerImage);
//sending image view to another class to get the image from the internet and show it in my imageview
//Downloader is a class that I made to download the images and show them in my Imageview
new Downloader().showImage(pagerImage ,data);
collection.addView(layout);
return layout;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object view) {
container.removeView((View) view);
}
@Override
public int getCount() {
return this.images.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
}
在我的主要 activity
viewPager.setAdapter(new MyViewPagerAdapter(MyApp.getContext(), "image url")
您只需清除 this.images
array/List/ArrayList 并在 viewPager 适配器上调用 adapter.notifyDataSetChanged();
。
如果 this.images
是一个 ArrayList 那么:
adapter.images.clear(); adapter.notifyDataSetChanged();
如果 this.images
是一个列表,则:
adapter.images = new ArrayList();
adapter.notifyDataSetChanged();
每次我想进行另一次搜索时,只需创建一个新的适配器对象即可。
viewPager.setAdapter(new MyViewPagerAdapter(MyApp.getContext(), "new image url")