|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Variables con $
Hola de nuevo!
Vengo con una duda que tras mucho investigar no se por que pasa. Tengo una clase llamada "Botonera" con una serie de atributos y uno de ellos es "int pos." dentro de esta clase tambien tengo un boton al que le asigno un onClickListener de esta manera: Código:
b.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ /* * AQUI TENGO LAS INSTRUCCIONES */ } } cuando pulso el boton y se llama al evento onClick mencionado arriba, necesito acceder a la variable pos y ver el valor nuevo que he modificado, debugueando me sale esto: pos = 3 (donde 3 es el valor nuevo que cambie) val$pos = 4 (donde 4 es el valor antiguo al que parece ser que no se le ha aplicado la modificacion) cuando lo utilizo y hago dentro del onClick un simple " int x= pos" me coge el valor 4 es decir el de val$pos. ¿Alguien sabe porque pasa esto y como se soluciona? Muchas Gracias. |
|
#2
|
||||
|
||||
¿Puede ser que tengas dos variables pos definidas, una en el método y otra en la clase?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#3
|
||||
|
||||
Solo tengo una y al estar dentro del onClick tengo que acceder a ella asi:
modelo.setPosicion(pos) y no puedo hacerlo asi modelo.setPosicion(this.pos) no se si esto tendra algo que ver |
#4
|
||||
|
||||
Re: Variables con $
¿Pero el "pos" que cambias dónde está definido y dónde lo cambias?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#5
|
||||
|
||||
Ya encontre el fallo y va mas o menos por lo que me dijiste en el la primera respuesta, lo pongo aqui por si alguien le pasa lo mismo.
Tengo una clase Botonera de esta manera: Código:
public class Botonera extends RelativeLayout{ private int pos; private ImageButton b; private Activity act; private Modelo modelo; public Botonera(Context principal,Bitmap btmp,Modelo m,final int pos,Activity act){ super(principal); this.act=act; this.modelo=m; this.pos=pos; this.b = new ImageButton(principal); this.b.setOnClickListener(new OnClickListener(){ @Override public boolean onClick(new OnClickListener(){ modelo.setImagenActual(pos); return false; } }); Código:
public Botonera(Context principal,Bitmap btmp,Modelo m,final int posic,Activity activ){ super(principal); this.act=activ; this.modelo=m; this.pos=posic; .... Espero haberme explicado bien. Muchas gracias! |
![]() |
![]() |
||||||
|