Tema: [ CONSULTA ] Pasar variable
Ver Mensaje Individual
  #12  
Viejo 19/10/18, 21:59:51
Array

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

Cómo no vas a saber añadir un parámetro a una función y a un constructor.

Esto es lo que tienes para cada botón:

Código:
dato = "j_01"
miTexto.text = (getString(R.string.Jornada_1))
requestJsonObject()
Dentro de requestJsonObject necesitas dato pero no lo tienes porque te sale en rojo, pues pásalo como parámetro, cambia la definición de requestJsonObject() por requestJsonObject(dato: String) y llámalo con requestJsonObject(dato) en los listener del botón.

Luego, en el adaptador tres cuartos de lo mismo, pero en vez de parámetro de una función en el constructor:

class AdapJor(internal var context: Context, internal var listJornadas: List<ModelJor>, val dato: String)

Con eso estaría resuelto el tema dato. Que, bueno, llamarlo dato es como no decir nada, todas las variables de un programa son datos Usar nombres descriptivos ayuda.

Ahora, lo del código repetido 30 veces tenía que haberte empezado a oler mal al segundo copy paste, o al tercero como mucho jaja. El código es exactamente igual en todos los botones, cambia el dato, el identificador de String y el identificador del botón. Mi sugerencia es crear una data class con esos tres atributos y crear un array que tenga 30 elementos de esa clase, de modo que el primero pertenezca a la primera jornada (j_01, R.string.Jornada_1 y R.id.tv_01), el segundo a la segunda, etc.

Con eso puedes convertir tu copy-paste de 30 veces en un bucle que lo escribes una vez y se ejecuta 30 veces, una con cada conjunto de datos de la jornada. Tener 5 líneas de código en vez de 150 es mucho más manejable y menos propenso a errores.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Gracias de parte de: