如何将图像从recyclerview imageview发送到其他活动

时间:2018-02-17 10:32:23

标签: android android-recyclerview

我有带卡片视图的recyclerview。每张卡都包含一张图片,其中有一张图片是使用Picasso从firebase数据库中检索出来的。现在我要做的是每当我点击图片视图时,它都会在新的活动中打开该图片。我能够通过以下方式打开新的活动点击imageview.but它没有显示图像。

为此我在我的适配器类中使用了以下代码:

public class ShowImage extends AppCompatActivity {

Context context;

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

    ImageView img = findViewById(R.id.shwimg);

    Intent i = getIntent();
    int position = i.getIntExtra("id", 0);
    img.setImageResource(ArrayList.get(position));

}
}

在其他课程中,我使用了这段代码,但我不知道是对还是

{{1}}

拜托,帮帮我

4 个答案:

答案 0 :(得分:1)

尝试发送图片网址而不是位置。像这样更改适配器中onclick方法的内容

 Intent mainIntent = new Intent(context, ShowImage.class);
 mainIntent.putExtra("img_url", Details.getImgurl());
 context.startActivity(mainIntent);

在ShowImage活动中保存就像这样

 Intent i = getIntent();
 String image = i.getStringExtra("img_url");
 Picasso.with(ShowImage.this).load(image).resize(120, 60).into(img);

答案 1 :(得分:0)

最简单的方法是将imageUrl从适配器发送到活动,作为字符串额外。然后使用picasso加载图像,就像在适配器中一样

答案 2 :(得分:0)

在点击监听器中添加此内容

Bundle bundle = new Bundle();
bundle.putExtra("img_url", Details.get(position).getImgurl());
Intent mainIntent = new Intent(context, ShowImage.class);
mainIntent.putExtras(bundle);
((Activity)context).startActivity(mainIntent);

在活动类中添加以下内容以获取图片网址

String url = getIntent.getStringExtra("img_url);

并像在适配器类中一样将其设置为相应的图像视图

答案 3 :(得分:0)

在这里,您只传递RecyclerView项目的位置,而不是传递图像。所以,您需要使用这样的意图传递图像:

            //create intent
            Intent mainIntent = new Intent(context, ShowImage.class);
            //add bundle to intent
           intent.putExtra("img", Details.getImgurl());
            //start activity
            context.startActivity(mainIntent);

在另一个活动中获取意图:

  String imgurl= getIntent().getStringExtra("img");
Picasso.with(this).load(imgurl).resize(120, 60).into(img);