【发布时间】:2017-09-16 05:10:42
【问题描述】:
我有一个recyclerview with an 30 images and on click of particular image i am opening a new activity which shows a different image.I have uploaded my images to a server and accessing the image from there. When my activity is opened on click ofrecyclerview` 我正在通过意图传递位置,以便我可以知道点击了哪个图像,然后我在我的活动中使用开关盒并加载我想要的任何图像。我已经写了 30 个案例切换,因为我有 30 张图片。有没有其他选择。我不想使用 if 和 else if。
public class ModelLineUpAdapter extends RecyclerView.Adapter<ModelLineUpAdapter.MyViewHolder> {
private Context context;
private List<Bikers> bikersList;
public ModelLineUpAdapter(List<Bikers> bikersList,Context context) {
this.bikersList=bikersList;
this.context = context;
}
public static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public ImageView bikesImageView;
public TextView nameTextView, priceTextView;
private Button brocheurebutton;
private final Context context;
public MyViewHolder(View itemView) {
super(itemView);
context = itemView.getContext();
bikesImageView = itemView.findViewById(R.id.bikelistitemImageview);
nameTextView = itemView.findViewById(R.id.bikelistitemname);
priceTextView = itemView.findViewById(R.id.bikelistitemprice);
brocheurebutton = itemView.findViewById(R.id.bikelistitembutton);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(context, ModelLineUpInnerActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("position",getAdapterPosition());
context.startActivity(intent);
}
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.bikelistitem, null);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Bikers bikers = bikersList.get(position);
holder.nameTextView.setText(bikers.getBikename());
holder.priceTextView.setText(bikers.getBikeprice());
Glide.with(context).load(bikers.getBikeImageUrl()).into(holder.bikesImageView);
}
@Override
public int getItemCount() {
//Log.i(TAG, "getItemCount: "+bikersList.size());
return bikersList == null ? 0 : bikersList.size();
}
}
【问题讨论】:
-
向我们展示您的代码并解释如何无法使用图像索引的数组/数据库来完成。
-
@MorrisonChang 我的 recyclerview 右边有 30 张图片,所以我传递了被点击的项目的位置。所以我需要写 30 个开关案例还是有更好的方法?
-
对你的回收站视图实现点击监听
-
显示你的适配器类
-
@NileshRathod 我已经编辑了问题,请看一下