首页 > 解决方案 > 如何在 Recyclerview 项目单击方法中将图像获取到新活动

问题描述

我正在创建一个像 Activity 这样的新闻提要,其中图像从 firebase 检索到 Recyclerview 并使用 picasso 显示。我需要通过 Onclick 在新活动中打开相同的详细信息。我在新的 Acvtivity 中收到短信。但是我怎样才能使用 url 获取图像。请帮助编码。

我的主适配器

public class NoticeAdapter extends RecyclerView.Adapter<NoticeAdapter.Noticeviewholder> {
    public List<Noticemodel> noticemodelList;
    Notice notice;


    public NoticeAdapter(List<Noticemodel> noticemodelList, Notice notice) {
        this.noticemodelList = noticemodelList;
        this.notice=notice;
    }



    @NonNull
    @Override
    public Noticeviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater=LayoutInflater.from(parent.getContext());
        View view=layoutInflater.inflate(R.layout.notice_item,null,false);
        return new Noticeviewholder(view,notice,noticemodelList);
    }

    @Override
    public void onBindViewHolder(@NonNull final Noticeviewholder noticeviewholder, final int position) {
        noticeviewholder.ntitle.setText(noticemodelList.get(position).getTitle());
        noticeviewholder.ndescription.setText(noticemodelList.get(position).getDescription());
        Picasso.get().load(noticemodelList.get(position).getImage()).into(noticeviewholder.nimageview);

    }

    @Override
    public int getItemCount() {
        return noticemodelList.size();
    }

    public class Noticeviewholder extends RecyclerView.ViewHolder implements View.OnClickListener
    {
        TextView ntitle;
        TextView ndescription;
        ImageView nimageview;
        Notice notice;
        List<Noticemodel> noticemodelList;
        public Noticeviewholder(View itemView, Notice notice, List<Noticemodel> noticemodelList) {
            super(itemView);
            this.notice=notice;
            this.noticemodelList=noticemodelList;
            itemView.setOnClickListener(this);
            ntitle=itemView.findViewById(R.id.notTitle);
            ndescription=itemView.findViewById(R.id.notDescription);
            nimageview=itemView.findViewById(R.id.notImage);

        }


        @Override
        public void onClick(View view) {
            int position = getAdapterPosition();
            Noticemodel noticemodel=this.noticemodelList.get(position);
            Intent intent= new Intent(this.notice,Noticedetails.class);
            intent.putExtra("title",noticemodelList.get(position).getTitle());
            intent.putExtra("description",noticemodelList.get(position).getDescription());
            intent.putExtra("image",noticemodelList.get(position).getImage());
            this.notice.startActivity(intent);

        }
    }
}

新活动课

public class Noticedetails extends AppCompatActivity {
    TextView ndTiltle,ndDescription;
    ImageView ndImage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_noticedetails);

        ndTiltle= findViewById(R.id.ndTitle);
        ndDescription= findViewById(R.id.ndDescription);
        ndImage= findViewById(R.id.ndImage);

        ndImage.setImageResource(getIntent().getIntExtra("image",00));
        ndTiltle.setText(getIntent().getStringExtra("title"));
        ndDescription.setText(getIntent().getStringExtra("description"));

    }
}

标签: androidandroid-recyclerview

解决方案


在新活动集图像中使用Picasso

Picasso.get().load(getIntent().getStringExtra(“image”)).into(ndImage);


推荐阅读