如何使用 Android 中的 picasso 将图像从 recyclerview 发送到详细信息 activity

How to send Image from recycler view to deatil activity using picasso in Android

在我的应用程序中,我从剩余 api json 数据中获取图像,我已在 recyclerview 中显示这些图像。现在我想将图片发送到 detail activity 以将此图片显示为封面图片。因此,我尝试使用以下代码来做到这一点。但我认为我在传递正确的图像值时犯了错误。如果有人帮我找出问题,那对我真的很有帮助。

问题已解决

适配器Class

 @Override
    public void onBindViewHolder(NewsHolder holder, int position) {
        final NewsModel currentNews = mNews.get(position);
        Picasso.with(holder.itemView.getContext());
        Picasso.with(holder.itemView.getContext()).load(currentNews.getTeaserImageSmall().getSrc()).into( holder.newsImage );        
        holder.newsHeadline.setText(currentNews.getTitle());
        holder.newsDate.setText(currentNews.getPostDate());
        holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

               Intent i=new Intent(context,DetailNews.class);
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                i.putExtra("src",currentNews.getTeaserImageSmall().getSrc());
                i.putExtra("title",currentNews.getTitle());
                i.putExtra("body",currentNews.getBody());
                context.startActivity(i);
            }
        });

详情ActivityClass

Intent intent = getIntent();

    //RECEIVE DATA
    Log.e("_coverImage",""+_coverImage);
    String coverImage = intent.getStringExtra ("src");
    String heading=intent.getExtras().getString("title");
    //String newsDate=intent.getExtras().getString("date");
    String description=intent.getExtras().getString("body");

    //BIND DATA
   Picasso.with(this).load(coverImage ).into(_coverImage);
    _newsHeading.setText(heading);      
    _description.setText(description);

您正试图从您的意图中获取整数,但它是字符串。

//RECEIVE DATA
String coverImageSrc = intent.getStringExtra("src");

并再次用 Piccasso 加载它:

 Picasso.with(this).load( coverImageSrc ).into( _coverImage ); 

代替_coverImage.setImageResource(coverImage);

你的概念有点不清楚。您在适配器中传递字符串值并在 DeatilActivity class.

中接收整数
final NewsModel currentNews = mNews.get(position);
Picasso.with(holder.itemView.getContext());
Picasso.with(holder.itemView.getContext()).load(currentNews.getTeaserImageSmall().getSrc()).into( holder.newsImage ); //Image url 

holder.newsHeadline.setText(currentNews.getTitle());
holder.newsDate.setText(currentNews.getPostDate());
holder.cardView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

         Intent i=new Intent(context,DetailNews.class);
         i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         i.putExtra("src",currentNews.getTeaserImageSmall().getSrc());
         i.putExtra("title",currentNews.getTitle());
         i.putExtra("body",currentNews.getBody());
         context.startActivity(i);
     }
 });

DeatilActivity.java

String coverImage = intent.getExtras().getString("src");
    String heading=intent.getExtras().getString("title");
    //String newsDate=intent.getExtras().getString("date");
    String description=intent.getExtras().getString("body");

//BIND DATA
//_coverImage.setImageResource(coverImage);   // Remove this line
Picasso.with(DetailActivity.this).load(coverImage ).into(_coverImage);