2011-11-22 129 views
0

我正在開發一個具有項目列表視圖的Android應用程序。這些listview記錄是從sqlite數據庫查詢的。下面是列表視圖執行代碼:Android - 更改ListView項目的TextStyle

 DataBaseHelper myDbHelper = new DataBaseHelper(null); 
     myDbHelper = new DataBaseHelper(this); 
     private static final String fields[] = {"c"}; 
     int[] names = new int[] {R.id.name}; 
      client1 = (ListView)findViewById(R.id.list1); 

    String sql = "SELECT sno,a,b,c,d FROM (SELECT com.sno, com.a, com.b com.c,cd.d from table1 mem inner join table2 cd on mem.e=cd.e inner join table3 com on com.b = mem.b where mem.e =14445 AND a is NULL UNION SELECT com.sno, com.a, com.b,com.c,cd.d from table1 mem inner join table3 com on com.b = mem.b inner join table2 cd on mem.e=cd.e where mem.e =14445 AND a is NOT NULL) a group by a,b;"; 

    Cursor cdata = myDbHelper.getView(sql); 

    SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,R.layout.list1, cdata, fields,names); 
    client1.setAdapter(adapter2); 

其中list1.xml是:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:id="@+id/MainLayout" 
android:padding="5px"> 
<TextView 
android:id="@+id/name" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:textSize="12sp" 
android:textColor="#104082" 
android:textStyle="bold" 
android:layout_weight="1" 
/> 
</LinearLayout> 

這裏我的問題是區分有 'A'= NULL和 'a'=數據記錄通過更改列表視圖項目的文本樣式,從同一個list1.xml中的notnull ....可以通過在查詢中提供任何文本樣式屬性來區分sql查詢中的文本樣式嗎?

提前

回答

2

可以使用爲ListView一個CustomAdapter做到這一點。由於視圖是從包含所有遊標結果的自定義數據對象創建的。 您可以檢查是否爲空,並有不同的文本樣式爲TextView的

檢查this鍛鍊自定義適配器

2

請幫我與示例代碼/鏈接......感謝你必須定義一個自定義列表適配器和它,你必須定義一個膨脹getitemview方法(或編程更改)該項目的佈局,可以說list1_null.xml或list1_notnull.xml

如果您需要的不僅僅是簡單顯示值(甚至是更改顏色等),您必須重新定義自定義適配器。從Android的API

ListAdapter例如:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List4.html