繁体   English   中英

如何在 Recyclerview 项目单击方法中将图像获取到新活动

[英]How to Get image to new Activity in Recyclerview item click method

我正在创建一个像 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);

        }
    }
}

新活动class

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"));

    }
}

在使用Picasso的新活动集图像中

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM