我有一个带有JSON的文本和图像的列表视图(工作正常),当我点击它时,我想使用一些TextViews和列表中的ImageView转到DetailActivity。我可以将ListActivity中的所有Textview传递给DetailActivity,但不传递给ImageView。
我试图用putextras和模型传递位图,但没有。如何处理这个问题?我可以将位图从缓存直接调用到DetailActivity吗?
答案 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/