如何在 Android 中的 ListView 中使用数据库中的图像?
我有一个 ListView
:
...
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="?android:attr/colorBackground"
android:cacheColorHint="?android:attr/colorBackground"
android:choiceMode="singleChoice"
android:drawSelectorOnTop="false"
android:fadingEdge="none"
android:fastScrollEnabled="true"
android:scrollingCache="true" />
...
以及列表项的布局:
...
<ImageView
android:id="@+id/folder_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="5dip"
android:paddingTop="3dip"
android:src="@drawable/icon_folder" />
<TextView
android:id="@+id/fol_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/folder_image"
android:textSize="22dip" />
...
ListView
是使用 从数据库填充的>setListAdapter(SimpleCursorAdapter)
。对于每一行,我想显示一个图像(文件夹图标)。但是,对于两个特定的行(假设我知道如何使用例如某种指示器来识别行),我想显示不同的图像。假设我有未确定数量的文件夹,并且文件夹名称旁边的每一行都会显示一个文件夹图标。我们还假设我有一个 Word 文档和一个 Excel 文件,各有一个,并且我想为每个文件显示适当的图像。
I have a ListView
:
...
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="?android:attr/colorBackground"
android:cacheColorHint="?android:attr/colorBackground"
android:choiceMode="singleChoice"
android:drawSelectorOnTop="false"
android:fadingEdge="none"
android:fastScrollEnabled="true"
android:scrollingCache="true" />
...
And a layout for the list items:
...
<ImageView
android:id="@+id/folder_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="5dip"
android:paddingTop="3dip"
android:src="@drawable/icon_folder" />
<TextView
android:id="@+id/fol_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/folder_image"
android:textSize="22dip" />
...
The ListView
is populated from a database using a setListAdapter(SimpleCursorAdapter)
. For each row, I want to display an image (a folder icon). However, for two specific rows (assume I know how to identify the rows using, for example, some sort of indicator) I'd like to display different images. Let's assume that I have an undetermined number of folders and a folder icon will be displayed for each row along side the folder's name. Let's also assume that I have, for example, a Word doc and an Excel file, exactly one of each, and I'd like to display the appropriate images for each.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
与 Stealthcopter 所写的类似,您需要扩展
SimpleCursorAdapter
并重写bindView()
来实现您的图标选择算法。这是来自 免费摘录 “ rel="nofollow noreferrer">我的一本讨论该技术的书。Akin to what stealthcopter wrote, you will need to extend
SimpleCursorAdapter
and overridebindView()
to implement your icon-selection algorithm. Here is a free excerpt from one of my books that discusses the technique.