Imageview no actualiza en ImageAdapter para un gridview

  • Respuestas:0
Makone Madriles
  • Posts del Foro: 2

8 dic. 2013 14:51:33 vía Web

Hola buenas, llevo unos dias muy atascado y creo que despues de googlear muchisimo y meterme en foros, ha llegado el momento de pedir ayuda, vereis... tengo un GridView que se llena con un ImageAdapter en el que introduce un string y una imagen. Mi app primero tiene un grid con "categorias", depende a cual hagas click, tiene una lista distinta de imagenes, la primera vez carga las imágenes perfectamente, pero después(y comprobado que todo funciona bien) sigue poniendo las primeras imágenes en vez de las que le toca... sin embargo el textview cambia perfectamente... que no hago bien para actualizar correctamente las imagenes¿?
muchas gracias de antemano.


Esta es mi clase PRODUCTOS, donde usa el gridview y el ImageAdapter
1public void onCreate(Bundle savedInstanceState)
2 {
3
4 super.onCreate(savedInstanceState);
5 requestWindowFeature(Window.FEATURE_NO_TITLE);
6 setContentView(R.layout.activity_productos);
7
8 //cojo categoria de Categoria
9 Bundle bundle = this.getIntent().getExtras();
10 categoria=bundle.getInt("CAT");
11 categoria=categoria+1;
12 //Log.e("cAtegORIA<>> "+categoria," AQUIII");
13
14 listado=new ArrayList();
15 // TODO Auto-generated method stub
16 /*listado=hacerlista();
17 Integer[] imagenes=new Integer[listado.size()];
18 imagenes=sacarFotos(listado);*/
19
20 lista l=new lista(context);
21 //l.mostrarLista();
22 listado=l.conjuntoCategoria(categoria);
23 Integer[] imagenes=new Integer[listado.size()];
24 imagenes=sacarFotos(listado);
25
26
27 gridView = (GridView) findViewById(R.id.grid);
28
29//AQUI ES DONDE NO SE SI ESTA EL PROBLEMA O LO QUE FALTA
30 gridView.destroyDrawingCache();
31 im = new ImageAdapter(Productos.this,imagenes,categoria);
32 gridView.setAdapter(im);
33 im.notifyDataSetChanged();
34
35
36 gridView.setOnItemClickListener(new OnItemClickListener() {
37 }
Y esta mi arrayadapter

1public View getView(int position, View convertView, ViewGroup parent)
2 {
3
4 listado=new ArrayList();
5 listado.clear();
6 lista l=new lista(context);
7 //l.mostrarLista();
8 listado=l.conjuntoCategoria(categoria);
9 //listado=hacerlista();
10 Holder holder = null;
11 if (convertView == null)
12 {
13
14 holder = new Holder();
15 LayoutInflater ltInflate = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
16 convertView = ltInflate.inflate(R.layout.gallery_item, null);
17
18 holder.setTextView((TextView) convertView.findViewById(R.id.grid_item_label));
19 holder.setImage((ImageView) convertView.findViewById(R.id.grid_item_image));
20
21 convertView.setTag(holder);
22
23 }
24 else
25
26 {
27 holder = (Holder) convertView.getTag();
28 }
29
30
31
32 if (imagenesEscaladas.get(position) == null)
33 {
34
35 Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromResource(context.getResources(), imagenes[position], 100, 0);
36 imagenesEscaladas.put(position, bitmap);
37 }
38 holder.getImage().setImageBitmap(imagenesEscaladas.get(position));
39 Log.e("POSICION : "+position+"-----<>>"+imagenes[position]," por 1");
40 holder.getTextView().setText(sacarNombrePorID(position));
41 return convertView;
42 }
43/////////////////////////////////////////////
44 public String sacarNombrePorID(int id){
45 String name="";
46 int cont=0;
47 Object pastel=listado.get(id);
48 pastel pas=(pastel) pastel;
49 name= pas.devolverNombre();
50 //Log.e("Id"+pas.devolverId()+"Imagen-----<>>"+pas.devolverImagen()," por 1");
51 cont++;
52 return name;
53 }
54
55 class Holder
56 {
57 ImageView image;
58
59 TextView textView;
60
61 public Holder(){
62 image=null;
63 textView=null;
64 }
65
66 public ImageView getImage()
67 {
68 return image;
69 }
70
71 public void setImage(ImageView image)
72 {
73 this.image = image;
74 }
75
76 public TextView getTextView()
77 {
78 return textView;
79 }
80
81 public void setTextView(TextView textView)
82 {
83 this.textView = textView;
84 }
85
86 }
87
88}

que me falta¿? muchas gracias de antemano ^^

Contestar