0

変数に応じて、ListViewアイテム(Asyncクラスで入力)の色を変更したい。だから、私はこれを持っています

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"
    }
}

これは可能ですか?ありがとう!

4

2 に答える 2

1

カスタムアダプタでオーバーライドgetViewし、独自のカスタムビューを提供する必要があります。

于 2012-04-24T03:55:34.540 に答える
0

確かに、アレイアダプタに要素を追加することができます。ただし、注意すべきいくつかの問題があります。

  1. ArrayListまたは実際に呼び出すことができるその他のものを渡しaddます
  2. setNotifyOnChange(true);を呼び出すことを忘れないでください。

したがって、一般的にはそれで十分です。ただし、アイテムを追加するAsyncTaskで何をしているのか、なぜ、何をしているのか、よくわかりません...

ListViewを作成するときに、それらを追加してみませんか?見逃したことはありますか?

于 2012-04-23T23:45:44.573 に答える