|
||
|
|
|
|||||||
| 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! |
![]() |
Estás aquí
|
||||||
|
||||||