public class RVAdapter extends
RecyclerView.Adapter<RVAdapter.PersonViewHolder> {    public
List<Person> persons= Collections.emptyList(); //    private Context
mContext; private LayoutInflater inflater;



    ImageLoader mImageLoader = AppController.getInstance().getImageLoader();

    private static Context context;


    public RVAdapter(Context context, List<Person> persons) {
        this.persons = persons;
          this.context = context;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public PersonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview,
parent, false);
        PersonViewHolder pvh = new PersonViewHolder(v);


        return pvh;
    }

    @Override
    public void onBindViewHolder(PersonViewHolder holder, int postions) {

        Person person = persons.get(postions);
        holder.phoneName.setText(person.getKitchen_accesries());
        holder.phonePrice.setText(person.getKitchen_price());
        holder.itemView.setTag(person);

   if (mImageLoader == null)
           mImageLoader = AppController.getInstance().getImageLoader();
      holder.thumbnail.setImageUrl(person.getThumbnail(), mImageLoader);


    }


    @Override
    public int getItemCount() {
        if (persons != null) {
            return persons.size();
        }
        return 0;
    }


    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    public static class PersonViewHolder extends RecyclerView .ViewHolder
            implements View
            .OnClickListener  {
        CardView cv;
        TextView phoneName;
        TextView phonePrice;
        public List<Person> persons;


        NetworkImageView thumbnail;

        PersonViewHolder(View itemView) {
            super(itemView);

            cv = (CardView) itemView.findViewById(R.id.card_view);
            phoneName = (TextView) itemView.findViewById(R.id.phone_name);
            phonePrice = (TextView) itemView.findViewById(R.id.phone_price);
            thumbnail = (NetworkImageView) itemView.findViewById(R.id.thumbnail);
            itemView.setOnClickListener(this); //
        }

        @Override
        public void onClick(View view ) {



            Intent intent = new Intent(context,ViewActivity.class);

            context.startActivity(intent);

        }


    }


}



  一旦我触摸了recyclerview上的项目,它将转到Viewactivity类,但是我无法将列表中的详细信息传递给detailsactivity类。
  我想使用put extra将这三个细节从我的Web服务传递到视图活动。但是在Onclick方法中,我没有从列表中获得项目的确切位置。

最佳答案

嘿,请在您的onclick中添加以下内容

      Person person =(Person)view.getTag();
        String strUrl= person.getThumbnail();
        String product1=person.getKitchen_accesries();
        intent.putExtra("Your string key",strUrl);
        intent.putExtra("Your string key",product1);
        intent.putExtra("Your string key",product1);
      context.startActivity(intent);
,然后访问您的详细信息活动应用程序中的所有内容>

10-07 13:15
查看更多