OK时,试图从我的SD卡图像在活动ListView
显现。生命周期使用SimpleCursorAdapter.setViewImage
我正在阅读很多提示,但我错过了一个重要的块。我很想看到一小段代码说明了这一点,还没有发现任何东西。
从我的研究,它听起来就像当执行listview.setadapter(SimpleCursorAdapter adapter)
bindview()
被调用。该文档说如果ViewBinder
无法处理ImageView
,setImageView
被bindview
调用。
您的FROM
阵列中指定字段中,TO
阵列中的TextView
的id
,所述Cursor
,并与TextView
视图组。然后将适配器设置为ListView
,然后发生。
我想调用顺序则是: listView.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setTextView
Bindview必须确定视图的类型TextView, determine that it can bind it, passes the
的TextView and text value from the cursor and
setTextView`做的事情。
所以,这使得呼吁的ImageView
非常相似的,对不对?
listViw.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setImageView
所以,当bindView
遇到和ImageView
类型的对象,它有什么作用?是否有像setTextView
这样的默认实现?我想这很难做到,图像差别很大。文字是文字,但图像有格式,大小,深度,比例,位置等等。传递给setTextView
的字符串是文本,有效载荷。在图像中,字符串(可能)是文件名,只是图像的起点。
我想我会需要建立我的适配器与持有FROM
文件名中的数据库列名。 TO
数组在我的布局中将只有ImageView
的ID。我想我可以使用默认的viewbinder bindview(),但必须覆盖setImageView()
采取期望的字符串(文件名),并打造出了图像加载线找到预期的应用程序路径图像名称。
所以这将是(也许):
listView.setAdapter(MyOwnSimpleCursorAdapter myOwnAdapter)->myOwnAdapter.super.bindView()->myOwnAdapter.setImageView()
这听起来是正确的?如果任何人都可以填补缺失的空白和/或提供一些工作的源代码,这将有很大帮助。顺便说一句,我已经写了代码来做到这一点,但它不起作用。这可能是一个非常简单的错误,如果它可行,不想停止这个线程。我想我只需要在正确的方向上轻轻一点。
太好了,谢谢你的详细回答,特别是考虑到我的问题很难找到所有这些措词。这个问题有点儿“这听起来不错吗?” 我不知道调用getView()和newView(),但关于setViewImage如何超级有用的额外细节。我还没有去源代码的答案,只是文件。另一个好的提示... – JustSomeGuy 2012-04-02 20:05:28
我的代码也没有失败,本身,它只是没有显示任何图像。这是因为从数据库返回的字符串只是文件名,而不是Uri的“photo100.jpg”与“file://mnt/sdcard/photo100.jpg”。 我将切换到存储图像的完整路径,如果我决定支持多个位置的图像,这将更好。 – JustSomeGuy 2012-04-02 20:32:25