更改listview中的特定行会导致另一行镜像更改

时间:2016-12-07 04:55:50

标签: android android-layout listview

嘿伙计们我是android的新手并试图绕过我的这个bug。所以我有一个带有2个按钮的基本列表视图,一个用于递增,另一个用于递减该行中的textview。当我单击任一按钮时,所需的文本视图(第0行)会发生变化,但是另一行甚至不在屏幕上(第5行)。

_

}

1 个答案:

答案 0 :(得分:0)

您实现适配器的方式是错误的。您的代码正在为您正在滚动ListView的每个项目调用findViewById(),这会降低性能。除了保持组件视图,我们通常使用视图持有者设计模式。

适配器类中,根据您的具体要求制作 ViewHolder 类:

static class ViewHolder {
  TextView tvItem;
  TextView tvAmount;
  ImageView ivItemPicture;
}

然后填充 ViewHolder 并将其保存在布局中:

ViewHolder holder = new ViewHolder();
holder. ivItemPicture = (ImageView) convertView.findViewById(R.id.item_lv_item_pic);
holder. tvAmount = (TextView) convertView.findViewById(R.id.item_lv_amount);
holder. tvItem = (TextView) convertView.findViewById(R.id.item_lv_name);
convertView.setTag(holder);

搜索视图持有者以获取更多信息,这可以解决您的问题。