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

Respuesta
 
Herramientas
  #1  
Viejo 13/02/13, 14:02:30
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

¿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!
Responder Con Cita
  #3  
Viejo 14/02/13, 09:07:18
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

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!
Responder Con Cita
  #5  
Viejo 14/02/13, 09:37:02
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 22:04:11 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /