ArrayAdapter行颜色方法更改多行

时间:2015-04-22 15:42:17

标签: android listview arraylist view android-arrayadapter

我正在尝试为自定义列表视图创建 2 3 4 5 6 7 8 9 10 1.0 1.0 1.3 1.5 1.0 1.1 1.0 1.2 1.0 。当用户点击ArrayAdapter上的“完成”时,我希望该特定条目的行颜色变为红色,然后隐藏“完成”按钮并显示一个名为“重置”的不同按钮。到目前为止,这工作得很好,但它更改了可滚动列表中向下行的行和按钮配置。

我已经看了很多不同的解决方案,而且我已经尝试了几乎所有我看过的建议。我一定错过了什么......

listView

1 个答案:

答案 0 :(得分:0)

if (r.getResultsBoatFinishTime() != null) {

    /* ... */

    //set the row color to red
    view.setBackgroundColor(view.getResources().getColor(R.color.red06));

    /* ... */
}

您忘记了View回收。您已着色为红色的View也会被重新用于显示其他行。由于您已为View将背景颜色设置为红色,因此其他行也将具有红色背景。

一个简单的解决方案是添加else分支:

} else {
    view.setBackgroundColor(view.getResources().getColor(R.color.myoriginalcolor));
}