在android中使用闪烁的imageView时,CustomListView中的错误

时间:2015-06-05 02:43:22

标签: java android android-listview custom-lists

目前,我正在创建一个使用自定义列表视图的简单应用,该应用会显示一个" new!" listView的第一个位置的图标,显示一个闪烁的" new !!"当前日期与json数据中的日期匹配时的图标。

显示正常"新!"在第一个位置(0)中的图标,一切都很好,因为它只显示在第一个位置。但是,当使用闪烁图标时,它会在向下滚动时显示在列表视图的随机位置。
由于没有错误,我发现很难解决这个问题。
我已经提供了我在下面使用的示例代码。

servo

1 个答案:

答案 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();
}