在android中的ListView上显示不同的图标

时间:2009-08-14 08:38:08

标签: android listview icons

我有一个xml文件名“list_row.xml”,这是在listView中加载的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
    android:id="@+id/icon"
    android:layout_width="wrap_content"     
    android:layout_height="wrap_content"
    android:src="@drawable/icon_one"
/>
<TextView
    android:id="@+id/label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"        
/>

我使用一个函数从我的表中加载数据并填写我的“list_row.xml”文件

private void fillData() {       
    Cursor c = mDbHelper.fetchAllNotes();
    String[] from = new String[]{ ListDbAdapter.KEY_ROWID,
            ListDbAdapter.KEY_ICON, ListDbAdapter.KEY_LABEL };
    int[] to = new int[]{ R.id.id, R.id.icon, R.id.label };
    SimpleCursorAdapter adapter = 
        new SimpleCursorAdapter(this, R.layout.list_row, c, from, to );     
    setListAdapter(adapter);
}

我的问题是如何检查图标值以设置listview上的图标显示(我的数据必须是icon:icon_one,icon_two)。有人可以帮我处理代码吗?

1 个答案:

答案 0 :(得分:4)

来自documentation

  

绑定分两个阶段进行。第一,   如果是SimpleCursorAdapter.ViewBinder   可用,   setViewValue(android.view.View,   android.database.Cursor,int)是   调用。如果返回值是   是的,绑定发生了。如果   返回值为false和视图   绑定是一个TextView,   setViewText(TextView,String)是   调用。如果返回值是   false和绑定视图是一个   ImageView,setViewImage(ImageView,   字符串)被调用。

因此,覆盖setViewImage()并手动将您的图标与ImageView相关联。或者,覆盖newView()bindView()并手动绑定整行。