2011-10-10 144 views
0

我有一個ListActivity,它將SimpleCursorAdapter設置爲我XML文件(android:id =「@ android:id/android:list」)中的ListView。我在預填數據庫中有五行。當活動開始時,我想將與_id 3對應的數據庫行的列表項視圖的背景設置爲藍色。此項目可以出現在列表中的任何位置,因爲用戶可以添加,編輯和刪除列表項目。 (所以我不能依靠按子節點編號索引。)如果該項目被刪除,那麼我不想做任何事情。設置列表項的背景顏色

如何找到正確的視圖?

新增信息: 列表項的組織像這樣(僅供參考,這是一個輪廓,而不是實際的XML代碼):

<LinearLayout> 
    <TextView/> 
    <TextView/> 
</LinearLayout> 

這就是佈局文件的輪廓,我傳遞給SimpleCursorAdapter構造函數。

回答

1

在您的適配器的bindView()方法中,您可以確定該行的_id並調用view.setBackgroundResource(R.drawable.my_blue_background); 會是這個樣子

public void bindView(View view, Context ctx, Cursor cursor) { 
    if(cursor.getInt(cursor.getColumnIndex("_id"))==3) 
     view.setBackgroundResource(R.drawable.my_blue_background); 
} 
0

要擴大JoeLallouz的回答是需要改變(只有一次),它實際上是視圖的父,再加上我們需要在列表項的佈局一些見解。

public void bindView(View view, Context ctx, Cursor cursor) { 
    if(view.getId() == R.id.known_view && cursor.getInt(cursor.getColumnIndex("_id"))==3) { 
     // Works if view's parent is the root of the list item's layout 
     ((View)view.getParent()).setBackgroundResource(R.drawable.my_blue_background); 
    } 
}