Member 13312108 Ответов: 0

Как я могу отправить массив изображений onclick on recyclerview в viewpager


Я загружаю изображения с моего сервера в представление recycler.Теперь по клику recycler view я отправляю только ссылку на щелкнутое изображение, но я хочу передать весь массив изображений onClick на пейджер просмотра, чтобы отобразить изображения бок о бок. Итак, может ли кто-нибудь помочь мне сделать это?

Код адаптера моего RecyclerView таков :

открытый класс MyAdapter расширяет RecyclerView.Адаптер & lt;myadapter. viewholder> {
частный список<listitem> listItems;
частная контекст;

@Ручная коррекция
публичный MyAdapter.ViewHolder onCreateViewHolder(родительская группа ViewGroup, int viewType) {
Смотреть V = LayoutInflater.(вышестоящее.метода getcontext())
.надуть(Р. макета.list_item,родитель,ложь);
вернуть новый видоискатель(v);
}

public MyAdapter(List<listitem> listItems, Context context) {
это.элементов listitem = элементам списка;
это.контекст = контекст;
}

@Ручная коррекция
public void onBindViewHolder (final MyAdapter.Держатель видоискателя, положение int) {
заключительный элемент listitem элемент listitem=элементам списка.вам(позиция);
Скользить.с(контекст).нагрузки(listitem элемент.getImageUrl()).centerCrop().в(держатель.Ив);
держатель.ЛН.setOnClickListener(
новый взгляд.OnClickListener() {
@Ручная коррекция
общественного недействительными onclick(посмотреть V) {
Строка s=listItem.getImageUrl();
Намерение i=новое намерение(контекст,ImageShow.class);
я.setFlags(намерениях.FLAG_ACTIVITY_NEW_TASK);
i. putExtra ("изображение", s);
контексте.startActivity(я);
}
}
);
}

@Ручная коррекция
public int getItemCount() {
возвращение элементов listitem.размер();
}
public class ViewHolder расширяет RecyclerView.ViewHolder{
публичное графическое представление и.;макет Л. Н.;

public ViewHolder(просмотр itemView) {
супер (itemView);
Ив=(графическое представление)itemView.команду findViewById(Р. ИД.графическое представление);
ЛН=(макет)itemView.команду findViewById(Р. ИД.linLay);
}
} }

Теперь в моем классе view pager теперь он показывает массив изображений из drawable:


открытый класс CustomAdapter расширяет PagerAdapter {
частный int[] картинки = {Р. холст.с,Р. холст.д,р. холст.е};
частный контекст ctx;
частный LayoutInflater inflater;

public CustomAdapter(контекст ctx){
это.СТХ = СТХ;
}

@Ручная коррекция
public int getCount() {
возвращайте изображения.длина;
}

@Ручная коррекция
общественная логическое isViewFromObject(вид, объекта, объекта ) {
return(view ==(RelativeLayout)object);
}

@Ручная коррекция
public Object instantiateItem(контейнер ViewGroup, int position) {
inflater = (LayoutInflater)ctx. getSystemService (Context.LAYOUT_INFLATER_SERVICE);
View v = inflater. inflate(R. layout. swipe, container, false);
Графическое представление ИМГ =(графическое представление)В. команду findViewById(Р. ИД.графическое представление);
img. setImageResource(изображения[позиция]);
контейнер.addView(в);
вернуться в;
}

@Ручная коррекция
общественного недействительными destroyItem(контейнер, вид, положение int, Object объект) {
контейнер.refreshDrawableState();
}
}

Что я уже пробовал:

Код адаптера моего RecyclerView таков :

открытый класс MyAdapter расширяет RecyclerView.Адаптер & lt;myadapter. viewholder> {
частный список<listitem> listItems;
частная контекст;

@Ручная коррекция
публичный MyAdapter.ViewHolder onCreateViewHolder(родительская группа ViewGroup, int viewType) {
Смотреть V = LayoutInflater.(вышестоящее.метода getcontext())
.надуть(Р. макета.list_item,родитель,ложь);
вернуть новый видоискатель(v);
}

public MyAdapter(List<listitem> listItems, Context context) {
это.элементов listitem = элементам списка;
это.контекст = контекст;
}

@Ручная коррекция
public void onBindViewHolder (final MyAdapter.Держатель видоискателя, положение int) {
заключительный элемент listitem элемент listitem=элементам списка.вам(позиция);
Скользить.с(контекст).нагрузки(listitem элемент.getImageUrl()).centerCrop().в(держатель.Ив);
держатель.ЛН.setOnClickListener(
новый взгляд.OnClickListener() {
@Ручная коррекция
общественного недействительными onclick(посмотреть V) {
Строка s=listItem.getImageUrl();
Намерение i=новое намерение(контекст,ImageShow.class);
я.setFlags(намерениях.FLAG_ACTIVITY_NEW_TASK);
i. putExtra ("изображение", s);
контексте.startActivity(я);
}
}
);
}

@Ручная коррекция
public int getItemCount() {
возвращение элементов listitem.размер();
}
public class ViewHolder расширяет RecyclerView.ViewHolder{
публичное графическое представление и.;макет Л. Н.;

public ViewHolder(просмотр itemView) {
супер (itemView);
Ив=(графическое представление)itemView.команду findViewById(Р. ИД.графическое представление);
ЛН=(макет)itemView.команду findViewById(Р. ИД.linLay);
}
} }

Теперь в моем классе view pager теперь он показывает массив изображений из drawable:


открытый класс CustomAdapter расширяет PagerAdapter {
частный int[] картинки = {Р. холст.с,Р. холст.д,р. холст.е};
частный контекст ctx;
частный LayoutInflater inflater;

public CustomAdapter(контекст ctx){
это.СТХ = СТХ;
}

@Ручная коррекция
public int getCount() {
возвращайте изображения.длина;
}

@Ручная коррекция
общественная логическое isViewFromObject(вид, объекта, объекта ) {
return(view ==(RelativeLayout)object);
}

@Ручная коррекция
public Object instantiateItem(контейнер ViewGroup, int position) {
inflater = (LayoutInflater)ctx. getSystemService (Context.LAYOUT_INFLATER_SERVICE);
View v = inflater. inflate(R. layout. swipe, container, false);
Графическое представление ИМГ =(графическое представление)В. команду findViewById(Р. ИД.графическое представление);
img. setImageResource(изображения[позиция]);
контейнер.addView(в);
вернуться в;
}

@Ручная коррекция
общественного недействительными destroyItem(контейнер, вид, положение int, Object объект) {
контейнер.refreshDrawableState();
}
}

0 Ответов