Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何处理RecyclerView中一行内的ImageView单击?_Android_Gridview_Android Recyclerview_Cardview - Fatal编程技术网

Android 如何处理RecyclerView中一行内的ImageView单击?

Android 如何处理RecyclerView中一行内的ImageView单击?,android,gridview,android-recyclerview,cardview,Android,Gridview,Android Recyclerview,Cardview,当我单击ImageView时,它将转到带有位置的GridView活动。当我单击cardview中的其他区域时,它会转到ItemDetailActivtiy with position。单击时如何进行一行或更少的编码 public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView tv_restaurant_name, tv_restaur

当我单击ImageView时,它将转到带有位置的GridView活动。当我单击cardview中的其他区域时,它会转到ItemDetailActivtiy with position。单击时如何进行一行或更少的编码

    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())));
尽管您需要以其他方式检索值,而不是bundleextra

getIntent().getIntExtra("ID",0);

尝试使用。它将减少样板代码。您有什么错误吗?@champandroid nothing error,我想使用更少的代码