目前,我正在创建一个使用自定义列表视图的简单应用,该应用会显示一个" new!" listView的第一个位置的图标,显示一个闪烁的" new !!"当前日期与json数据中的日期匹配时的图标。
显示正常"新!"在第一个位置(0)中的图标,一切都很好,因为它只显示在第一个位置。但是,当使用闪烁图标时,它会在向下滚动时显示在列表视图的随机位置。
由于没有错误,我发现很难解决这个问题。
我已经提供了我在下面使用的示例代码。
servo
答案 0 :(得分:0)
由于您正在使用视图,因此当视图再次返回屏幕时将再次重复使用该视图。因此,如果您在第一个位置设置一个视图,它将在不同位置可见,除非您明确将其设置为不可见。答案就是这样的
AnimationDrawable frameAnimation = (AnimationDrawable) holder.left.getBackground();
if (position == 0) {
if (newIconParam.get(0).equals("OK")|| newIconParam.get(0) == "OK") {
dateonly = loto_date.get(0).trim().toString();
dateonly2 = dateonly.replaceAll("\\(.*?\\) ?", "");
String date3 = dateonly2.trim(); // use this to check
if (date3.equals(today)) {
//If the current date matches ,then show the blinking icon in the first position
logicflag = true;
holder.left.setBackgroundResource(R.drawable.blinker);
frameAnimation.start();
}
else if (!date3.equals(today) || date3 != today) {
// want to show only the normal icon in the first position when the current date doesn't match
holder.left.setImageResource(R.drawable.new_icon);
}
}
else {
//dont show icons in other parts of listview
holder.left.setImageResource(android.R.color.transparent);
frameAnimation.stop();
}