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  
Viejo 13/02/13, 14:02:30
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
        */
     }
}
En otro metodo que no pertenece a esta clase accedo a un objeto de esta clase y modifico el pos con un simple setter.

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.
Responder Con Cita


  #2  
Viejo 13/02/13, 14:47:35
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
¿Puede ser que tengas dos variables pos definidas, una en el método y otra en la clase?
Responder Con Cita
  #3  
Viejo 14/02/13, 09:07:18
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita
  #4  
Viejo 14/02/13, 09:15:28
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Re: Variables con $

¿Pero el "pos" que cambias dónde está definido y dónde lo cambias?
Responder Con Cita
  #5  
Viejo 14/02/13, 09:37:02
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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;
           }
       });
Si quitaba el final del constructor me daba fallo, y eclipse me sugeria que lo pusiera, ahi deberia estar el fallo. Lo que he hecho ha sido quitarlo y me seguia dando un error, entonces cambie el nombre de la variable pos en el constructor y me quedo la cabecera de esta manera
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;
        ....
de esa manera se soluccionaba el fallo y en la instruccion modelo.setImagenActual(pos) pos sale coloreada de azul como indicando que se esta accediendo al atributo de la clase botonera.

Espero haberme explicado bien.

Muchas gracias!
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 03:30:32 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007