将图像从Listview传递到详细活动

时间:2014-10-05 14:20:12

标签: android listview caching bitmap

我有一个带有JSON的文本和图像的列表视图(工作正常),当我点击它时,我想使用一些TextViews和列表中的ImageView转到DetailActivity。我可以将ListActivity中的所有Textview传递给DetailActivity,但不传递给ImageView。

我试图用putextras和模型传递位图,但没有。如何处理这个问题?我可以将位图从缓存直接调用到DetailActivity吗?

4 个答案:

答案 0 :(得分:1)

您可以使用ImageLoader

  Intent i = getIntent();
     // Get the result of flag
    flag = i.getStringExtra("flag"); // image 

    // Locate the TextViews and images in singleitemview.xml
    ImageView imgflag = (ImageView) findViewById(R.id.flag);
    imageLoader.DisplayImage(flag, imgflag); // use lazylist image loader

您可以看到此example

答案 1 :(得分:0)

您是否将图像保存在本地存储中?在这种情况下,最好发送保存文件的Uri而不是原始位图。

答案 2 :(得分:0)

按意图传递大量数据并不总是有效。虽然没有记录,但这经常会失败。参见

还有更多。

一个好的解决方法是(a)将位图保存到文件中(b)通过意图将文件名传递给详细活动,(c)在详细活动中重新创建位图。

答案 3 :(得分:0)

传递我发现的复杂对象的最简单方法是使用EventBus:https://github.com/greenrobot/EventBus

使用EventBus可以避免以任何方式序列化数据,甚至可以直接将其用于其他活动/片段和常规课程。

我对这个问题的回答对这个主题有一些解释:Saving information from one fragment and dialog if the user navigates to another fragment

本文还有一些很好的小例子,说明它是多么简单,加上与其他方法的比较:http://www.stevenmarkford.com/passing-objects-between-android-activities/