无法在android';s自定义列表视图
最近,我成功地在android中创建了一个自定义listview,用于显示列表中的图像。然而,我有一个我无法解决的问题。 我试着做的很简单,1。通过web向与json数据日期相同的列表项显示闪烁图标。2.显示listview第2和第3个位置的图像。3.对于其余的列表项,将不会显示任何图像 我在自定义适配器的getView方法中有一个简单的编码,它实际上将当前日期与通过web从json数据检索的日期进行比较。我已经在下面设置了我正在使用的函数 如果当前日期等于json数据中的日期,它将显示一个闪烁的图像(出于测试目的,我使用2015/05/14)。如果位置等于第2或第3个位置,则显示图标。别的什么也看不出来。 但是,有些图像显示在listview的随机位置。我的代码中有错误吗?怎么可能不显示不符合条件的图标无法在android';s自定义列表视图,android,json,listview,android-listview,Android,Json,Listview,Android Listview,最近,我成功地在android中创建了一个自定义listview,用于显示列表中的图像。然而,我有一个我无法解决的问题。 我试着做的很简单,1。通过web向与json数据日期相同的列表项显示闪烁图标。2.显示listview第2和第3个位置的图像。3.对于其余的列表项,将不会显示任何图像 我在自定义适配器的getView方法中有一个简单的编码,它实际上将当前日期与通过web从json数据检索的日期进行比较。我已经在下面设置了我正在使用的函数 如果当前日期等于json数据中的日期,它将显示一个闪烁
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;
}
在随后的getView()
调用中,我们使用mBlinkingIndex
来确定
因为我们需要使用drawablenew1设置第二行和第三行
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);
}
谢谢你,库沙尔!当我有时间的时候,我会测试你的方法!我会告诉你结果@用户3867627您是否检查了上述解决方案?
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);
}