2015-05-08 110 views
0

我想更改列表視圖中只有一個項目的文本顏色。更改列表視圖中的指定項目的顏色android

此更改將由正在運行的asynctask的結果觸發。

到目前爲止,我在谷歌搜索和所有我發現是覆蓋適配器的getView()函數,但這種方法是有點困難,因爲我需要保持我想着色的行的id在全局變量將被getView()訪問。

當事件發生時,是否有另一種方法來簡單地設置項目的文本顏色從列表視圖?

編輯

我創建的列表視圖這樣:

myListView = (ListView) findViewById(R.id.listView); 
listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow); 
listAdapter.add("test"); 
myListView.setAdapter(listAdapter); 
+0

你如何創建你的ListView?如果通過創建SimpleCursorAdapter列表,您可以使用((TextView)視圖)改變顏色.setTextColor(Color.RED); – Jacky

回答

0

對於爲列表項目設置顏色絕對需要覆蓋AdaptergetView()方法。這裏是一個小例子,用於更新列表項的顏色而不使用項目的ID。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simplerow) { 
       @Override 
       public View getView(int position, View convertView, ViewGroup parent) { 
        View view = super.getView(position, convertView, parent); 
        if (position % 2 == 0) { //Place the condition where you want to change the item color. 
         view.setBackgroundColor(Color.GRAY); 
        } else { 
         //Setting to default color. 
         view.setBackgroundColor(Color.WHITE); 
        } 
        return view; 
       } 
      }; 

在上面的例子中,所有的偶數位置列表項將在GREY顏色和其他人將WHITE顏色。如果不實施getView(),我們無法做到這一點。供參考Click Here

0

你可以設置自定義對象的可見顏色適配器然後更改顏色在這個接口並調用notifyDataSetChanged()

+0

我是新來的Android編程...不太明白你的答案。你說的意思是覆蓋getView()。我想知道是否有另一種方式。 – user1934513

相關問題