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



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

我试着用putextrass和model传递位图,但什么都没有。如何处理这个问题?我可以将位图从缓存直接调用到DetailActivity吗?

您可以使用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

你可以看到这个例子。

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

通过意图传递大量数据并不总是有效的。尽管没有记录在案,但这通常会失败。参见

  • 问题:将大数据传递给第二个活动
  • 开始一项具有大量附加意图的活动

以及更多。

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

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

使用EventBus可以避免以任何方式序列化数据,它们可以直接用于其他Activity/Fragments和常规类。

我对这个问题的回答对这个主题有一些解释:如果用户导航到另一个片段,则保存来自一个片段和对话框的信息

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

最新更新