2013-07-29 129 views
0

我想以編程方式在特定位置更改listview(simple_list_item_2適配器)子項的顏色。 (這裏例如具有= lv.getCount()的所有項目;)Android:從列表視圖中按位置獲取視圖

ListView lv = getListView(); 
int a = lv.getCount(); 
for (int i = 0; i < a; i++) { 
      ((TextView) lv.getChildAt(i).findViewById(android.R.id.text1)).setTextColor(Color 
        .parseColor("#EEC900")); 
} 

getChildAt();並不總是爲我工作。在列表項不在場景中的情況下,getChild不返回視圖或其他東西.. 是否有更好的解決方案,而不是getChildAt?

回答

0

您將不得不在您的Adapter類中執行此操作。 Android緩存並重新循環列表視圖中的視圖以節省內存。所以沒有你無法看到改變顏色的意見。

因此,舉例來說,如果你有一個arrayAdapter,你會重寫getView功能,並有運行你的檢查:

@Override 
    public View getView(int position, View view, ViewGroup parent) { 
     // use "position" to determine which item you have. 
     // Then set the properties of "view" which is your list row. 

    }