如何处理 RecyclerView 中一行内的 ImageView 单击?
How to handle ImageView click inside a row in RecyclerView?
当我单击 ImageView 时,它会转到带有位置的 GridView activity。当我单击卡片视图内的其他区域时,它会转到带有位置的 ItemDetailActivtiy。点击时如何做到一行或少于编码。
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView tv_restaurant_name, tv_restaurant_address, tv_restaurant_phone;
ImageView imgview;
public ViewHolder(View itemView) {
super(itemView);
tv_restaurant_name = (TextView) itemView.findViewById(R.id.tv_restaurant_name);
tv_restaurant_address = (TextView) itemView.findViewById(R.id.tv_restaurant_address);
tv_restaurant_phone = (TextView) itemView.findViewById(R.id.tv_restaurant_phone);
imgview = (ImageView) itemView.findViewById(R.id.imgview);
tv_restaurant_name.setOnClickListener(this);
tv_restaurant_address.setOnClickListener(this);
tv_restaurant_phone.setOnClickListener(this);
imgview.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (v.getId() == imgview.getId()) {
Intent intent = new Intent(context, GridView.class);
Bundle bundle = new Bundle();
bundle.putInt("ID", Integer.valueOf(mRestaurantList.get(position).getRestaurantId()));
intent.putExtras(bundle);
context.startActivity(intent);
} else {
context.startActivity(new Intent(context, ItemDetailActivtiy.class));
}
}
}
你可以一行完成!
context.startActivity(new Intent(context, GridView.class).putExtra("ID",Integer.valueOf(mRestaurantList.get(position).getRestaurantId())));
虽然您需要以其他方式检索值而不是额外捆绑。
getIntent().getIntExtra("ID",0);
当我单击 ImageView 时,它会转到带有位置的 GridView activity。当我单击卡片视图内的其他区域时,它会转到带有位置的 ItemDetailActivtiy。点击时如何做到一行或少于编码。
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView tv_restaurant_name, tv_restaurant_address, tv_restaurant_phone;
ImageView imgview;
public ViewHolder(View itemView) {
super(itemView);
tv_restaurant_name = (TextView) itemView.findViewById(R.id.tv_restaurant_name);
tv_restaurant_address = (TextView) itemView.findViewById(R.id.tv_restaurant_address);
tv_restaurant_phone = (TextView) itemView.findViewById(R.id.tv_restaurant_phone);
imgview = (ImageView) itemView.findViewById(R.id.imgview);
tv_restaurant_name.setOnClickListener(this);
tv_restaurant_address.setOnClickListener(this);
tv_restaurant_phone.setOnClickListener(this);
imgview.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (v.getId() == imgview.getId()) {
Intent intent = new Intent(context, GridView.class);
Bundle bundle = new Bundle();
bundle.putInt("ID", Integer.valueOf(mRestaurantList.get(position).getRestaurantId()));
intent.putExtras(bundle);
context.startActivity(intent);
} else {
context.startActivity(new Intent(context, ItemDetailActivtiy.class));
}
}
}
你可以一行完成!
context.startActivity(new Intent(context, GridView.class).putExtra("ID",Integer.valueOf(mRestaurantList.get(position).getRestaurantId())));
虽然您需要以其他方式检索值而不是额外捆绑。
getIntent().getIntExtra("ID",0);