我有一个列表视图,显示项目的价格。我需要打破旧价格并根据json的“报价”值显示新价格。这就是我在getView()中尝试的方法。
if (dataList.get(position).get("Offer").equals("0")) {
viewHolder.view_price.setVisibility(View.GONE);
} else {
viewHolder.view_subprice.setPaintFlags(viewHolder.view_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG)
}
一开始就完美无缺。但是当我滚动删除线的时候。没有罢工的文字视图似乎被打破了。
答案 0 :(得分:1)
尝试删除" if"中的标记。 在android中有一个列表的东西是视图正在重复。 所以,让我们假设您在屏幕上有5个项目,总共10个项目。 如果在第一项的getView中,您设置为具有警示。在视图6中,当你滚动时,如果你不需要它被打击,如果它已被打击,那么它将保持这样,因为你没有修改它。 所以尝试类似的事情:
if (dataList.get(position).get("Offer").equals("0")) {
viewHolder.view_price.setVisibility(View.GONE);
viewHolder.view_subprice.setPaintFlags(null)
} else {
viewHolder.view_subprice.setPaintFlags(viewHolder.view_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG)
viewHolder.view_price.setVisibility(View.Visible);
}