2012-04-23 208 views
0

我想改變我的ListView項目的顏色(使用Async類填充),具體取決於一個變量。所以,我有這個更改android listview項目的前景色

public class Search extends AsyncTask<Void, String, Void> { 
    boolean blue = false; 
    @Override 
    protected Void doInBackground(Void... params) { 
     Resources res = getResources(); 
     List<String> Items = Arrays.asList(res.getStringArray(R.array.Items)); 
     for (String it : Items) { 
      if (it.contains("blue")) { blue = true; } else { blue = false; }  
      publishProgress(it); 
     } 
     return null; 
    } 

    @SuppressWarnings("unchecked") 
    @Override 
    protected void onProgressUpdate(String... item) { 
     ((ArrayAdapter<String>)getListAdapter()).add(item[0]); 
     // Change the color of the current item depending on "blue" 
    } 
} 

這可能嗎?謝謝!

回答

1

您需要在自定義適配器中覆蓋getView,並提供自己的自定義視圖。

+0

在哪個類中,或者在哪裏? – ali 2012-04-24 09:02:06

+0

擴展BaseAdapter或其他適配器。 – 2012-04-25 03:29:37

0

當然,您可以添加元素到您的陣列適配器。但是有幾個問題需要照顧:

  1. 通在一個ArrayList或其他任何東西,你其實可以在
  2. 調用add不要忘記調用setNotifyOnChange(真);

所以一般應該這樣做。然而,我不確定我是否明白爲什麼以及您在使用添加項目的AsyncTask做什麼...

爲什麼不在創建ListView時添加它們?有什麼我錯過了嗎?

+0

我刪除了這個問題的一些不必要的代碼。 AsynkTask也會過濾這些項目,但我沒有包含該代碼 – ali 2012-04-24 08:55:53

相關問題