gpt4 book ai didi

java - 如何将对象从适配器发送到 Activity

转载 作者:行者123 更新时间:2023-12-04 07:49:55 26 4
gpt4 key购买 nike

当我发送一些数据时,它给了我这个错误 java.lang.ArrayIndexOutOfBoundsException:长度=15;指数=-1 ,我不知道为什么。我试图搜索,但我没有找到与此错误相关的任何内容。
我的代码

   @NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.book_items, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
viewHolder.onClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, BookContentActivity.class);
intent.putExtra("title",bookList.get(viewHolder.getAdapterPosition()).getTitle());
intent.putExtra("author",bookList.get(viewHolder.getAdapterPosition()).getAuthor());
intent.putExtra("details",bookList.get(viewHolder.getAdapterPosition()).getDetails());
intent.putExtra("imageURL",bookList.get(viewHolder.getAdapterPosition()).getImgUrl());
intent.putExtra("rating",bookList.get(viewHolder.getAdapterPosition()).getRating());
intent.putExtra("pages",bookList.get(viewHolder.getAdapterPosition()).getPages());
intent.putExtra("downloadUrl",bookList.get(viewHolder.getAdapterPosition()).getDownloadURL());

context.startActivity(intent);
}
});
return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

holder.title.setText(this.bookList.get(position).getTitle());
holder.author.setText(this.bookList.get(position).getAuthor());
Glide.with(holder.itemView.getContext())
.load(this.bookList.get(position).getImgUrl())
.transforms(new CenterCrop(),new RoundedCorners(16))
.into(holder.imageBook);

holder.bookRating.setRating(this.bookList.get(position).getRating());
holder.pages.setText(this.bookList.get(position).getPages());
}

最佳答案

点击监听器应添加到您将 View 绑定(bind)到 ViewHolder 对象 (onBindViewHolder) 的位置。但是,为了获取该对象并启动您的下一个 Activity ,传递一个自定义监听器接口(interface)来获取单击的对象会更好。因为适配器不应该负责通过 Intent 启动 Activity 。
希望这会有所帮助。

关于java - 如何将对象从适配器发送到 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67036958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com