这是我的问题:
我有一个带有 ImageView 的 ListView,最初设置为 GONE,但在自定义适配器上做了一些事情后,将其设置为可见。
我的问题是,如果我选择列表的第一个元素,每四个项目也会将其图像设置为可见。
我希望我已经解释了自己。如果有任何疑问,请随时问我。
我编辑以添加一些代码。有些部分是西班牙语,因为我是西班牙语。
getView(): 视图 v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_view_item, null);
}
final Oferta o = items.get(position);
boolean comprado = false;
if (o != null) {
final ImageView image = (ImageView) v.findViewById(R.id.imageView1);
TextView titulo = (TextView) v.findViewById(R.id.textView1);
TextView precioAnterior = (TextView) v.findViewById(R.id.textView2);
TextView precioNuevo = (TextView) v.findViewById(R.id.textView3);
TextView fechaHasta = (TextView) v.findViewById(R.id.textView4);
ImageView imageComprado = (ImageView) v.findViewById(R.id.imageView2);
Drawable compra = this.getContext().getResources().getDrawable(R.drawable.comprada);
for(int i = 0; i < MainActivity.tickets.size();i++)
{
if((MainActivity.tickets.get(i).getOferta().getId()) == (o.getId()))
{
System.out.println("tickets: " + MainActivity.tickets.get(i).getOferta().getId());
System.out.println("oferta: " + o.getId());
comprado = true;
break;
}
}
if (comprado)
{
imageComprado.setVisibility(View.VISIBLE);
comprado = false;
}
if (titulo != null) {
titulo.setText(o.getTitulo());
}
if(precioAnterior != null){
precioNuevo.setText(String.valueOf(new java.text.DecimalFormat("#.##").format(o.getPrecioNuevo()))+"€");
}
if(precioNuevo != null){
precioAnterior.setPaintFlags(precioAnterior.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
precioAnterior.setText(String.valueOf(new java.text.DecimalFormat("#.##").format(o.getPrecioAnterior()))+"€");
}
if(fechaHasta != null){
fechaHasta.setText("Cad.: " + o.getDisponibleHasta());
}
if(image != null){
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory()
.cacheOnDisc()
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getContext())
.defaultDisplayImageOptions(defaultOptions)
.build();
ImageLoader.getInstance().init(config);
//imageLoader.init(ImageLoaderConfiguration.createDefault(getApplicationContext()));
ImageLoader.getInstance().displayImage(o.getImagen(), image);
}