2012-04-23 23 views
0

変数に応じて、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

+0

BaseAdapterまたはその他のアダプタを拡張します。 –

0

確かに、あなたのアレイアダプタに要素を追加することができます。しかし、の世話をするには、いくつかの問題がある:あなたが実際にsetNotifyOnChange(true)を呼び出すことを忘れないでくださいadd

  • に呼び出すことができますArrayListのか何かで

    1. パスは、

    だから一般的にそうするべきです。しかし、項目を追加する理由とAsyncTaskを使って何をやっているのか分かりません。

    ListViewを作成するときにそれらを追加するのはなぜですか?私が逃したものはありますか?

    +0

    この問題で不要なコードを削除しました。 AsynkTaskはアイテムもフィルタリングしますが、そのコードは含まれていません – ali

    関連する問題