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 回答