28
Фев
2021

Как получить картинки с Rest-Api в View-Pager2?

C REST-api должен получать картинки в слайдер (ViewPager2), но почему то картинки в нем не появляются. Подскажите что надо дописать что бы заработало.Я предполагаю что ошибка моя в непонимании что именно мне надо написать в Glide в load... вот код активити где вызываю слайдер

public class MovieDetails extends AppCompatActivity {
private ViewPager2 slider;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_movie_details);

    initialization();
    getTVShowDetails();

}
 private void initialization() {
 slider = findViewById(R.id.sliderViewPager2);
 loadImageSlider(tvShowDetails.getPictures());
}
private void loadImageSlider(String[] sliderImages){
    slider.setOffscreenPageLimit(1); //проверить
    slider.setAdapter(new ImageSliderAdapter(this,sliderImages));
    slider.setVisibility(View.VISIBLE);
}

Вот сам адаптер этого слайдера public class ImageSliderAdapter extends RecyclerView.Adapter<ImageSliderAdapter.ImageSliderViewHolder> {

private String[] sliderImages;
private LayoutInflater layoutInflater;
private TVShowDetails tvShowDetails;

public ImageSliderAdapter(Context context, String[] sliderImages) {
    this.sliderImages = sliderImages;
    this.layoutInflater = LayoutInflater.from(context);
}

@NonNull
@Override
public ImageSliderAdapter.ImageSliderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int 
viewType) {
    Context context;
    View view =  layoutInflater.inflate(R.layout.item_container_slider_image, parent, false);
    return new ImageSliderViewHolder(view);

}

@Override
public void onBindViewHolder(@NonNull ImageSliderAdapter.ImageSliderViewHolder holder, int position) 
{

    Glide.with(holder.itemView.getContext())
            .load(sliderImages)
            .into(holder.imageView_slider);
}

@Override
public int getItemCount() {
    return sliderImages.length;
}

public static class ImageSliderViewHolder extends RecyclerView.ViewHolder {
    private RelativeLayout relativeLayout;
    private ImageView imageView_slider;


    public ImageSliderViewHolder(@NonNull View itemView) {
        super(itemView);
        relativeLayout = itemView.findViewById(R.id.slider_layout);
        imageView_slider = itemView.findViewById(R.id.img_slider);

    }

}
}

Вот логи

02-28 02:45:05.970 22175-22340/com.example.mycinemaapp E/GlideExecutor: Request threw uncaught 
throwable
com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders 
registered for model class: class [Ljava.lang.String;
    at com.bumptech.glide.load.model.ModelLoaderRegistry.getModelLoaders(ModelLoaderRegistry.java:77)
    at com.bumptech.glide.Registry.getModelLoaders(Registry.java:585)
    at com.bumptech.glide.load.engine.DecodeHelper.getLoadData(DecodeHelper.java:207)
    at com.bumptech.glide.load.engine.DecodeHelper.getCacheKeys(DecodeHelper.java:224)
    at 
com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext(ResourceCacheGenerator.java:44)
    at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
    at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:276)
    at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)
    at GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:393)

Я понимаю что натупил с Glide в load, но что там написать надо что бы получить картинки из REST-Api что-то вообще не понимаю...

Источник: https://ru.stackoverflow.com/questions/1249603/%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8-%D1%81-rest-api-%D0%B2-view-pager2

Тебе может это понравится...

Добавить комментарий