gpt4 book ai didi

android - 无法将图像定位到 android 的自定义 ListView 中的所需位置

转载 作者:行者123 更新时间:2023-11-30 02:09:54 25 4
gpt4 key购买 nike

最近,我设法在 android 中制作了一个自定义 ListView ,用于在列表中显示图像。但是,我有一个无法解决的问题。我尝试做的事情非常简单,1. 通过网络将闪烁的图标显示到与 json 数据具有相同日期的列表项。 2. 显示 ListView 的第 2 个和第 3 个位置的图像。 3. 对于其余的列表项,将不会显示任何图像。

我在自定义适配器的 getView 方法中有一个简单的代码,它实际上将当前日期与通过网络从 json 数据中检索到的日期进行比较。我已经在下面设置了我正在使用的功能。

如果当前日期等于 json 数据中的日期,它将显示闪烁的图像(出于测试目的,我使用的是 2015/05/14)。如果位置等于第二或第三位置,则显示一个图标。否则什么都不显示。然而,一些图像出现在 ListView 的随机位置。我的代码中有错误吗?怎么可能不显示不符合条件的图标呢?

if (days.get(position).trim().toString().equals("2015/05/14")||days.get(position).trim().toString()=="2015/05/14") {

holder.left.setBackgroundResource(R.drawable.blinker);
AnimationDrawable frameAnimation = (AnimationDrawable) holder.left
.getBackground();

// Start the animation (looped playback by default).
frameAnimation.start();

}else{
holder.left.setImageResource(android.R.color.transparent);
}

if(position==1||position==2){

holder.left.setImageResource(R.drawable.new1);

}else{
holder.left.setImageResource(android.R.color.transparent);
}

if(position==getCount()-1){
holder.left.setImageResource(android.R.color.transparent);
}



return convertView;
}

最佳答案

if (days.get(position).trim().toString().equals("2015/05/14")||days.get(position).trim().toString()=="2015/05/14") {

holder.left.setBackgroundResource(R.drawable.blinker);
AnimationDrawable frameAnimation = (AnimationDrawable) holder.left
.getBackground();

// Start the animation (looped playback by default).
frameAnimation.start();

// set variable with index of blinking row
mBlinkingIndex = position;



}else{
holder.left.setImageResource(android.R.color.transparent);
}

在后续的getView()调用中,我们使用mBlinkingIndex来判断。

因为我们需要用drawable new1设置第二行和第三行

    if((position = (mBlinkingIndex+1) || (position == (mBlinkingIndex+2)){
// this row is special
holder.left.setImageResource(R.drawable.new1);

}else{
// this row is not special
holder.left.setImageResource(android.R.color.transparent);
}

所以,getView() 看起来像:

    if (days.get(position).trim().toString().equals("2015/05/14")||days.get(position).trim().toString()=="2015/05/14") {

holder.left.setBackgroundResource(R.drawable.blinker);
AnimationDrawable frameAnimation = (AnimationDrawable) holder.left
.getBackground();

// Start the animation (looped playback by default).
frameAnimation.start();

// set variable with index of blinking row
mBlinkingIndex = position;



}else{
holder.left.setImageResource(android.R.color.transparent);
}

if((position = (mBlinkingIndex+1) || (position == (mBlinkingIndex+2)){
// this row is special
holder.left.setImageResource(R.drawable.new1);

}else{
// this row is not special
holder.left.setImageResource(android.R.color.transparent);
}

关于android - 无法将图像定位到 android 的自定义 ListView 中的所需位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com