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/12, 23:22:19
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

Duda dinámica

Bueno, como no se explicar bien mi problema pongo un ejemplo y luego lo intento explicar un poco a ver si me ayuda un poco el haberlo escrito antes:

Código:
if (turno == 1) player1.setText("Es tu turno!");

else if (turno == 2) player2.setText("Es tu turno!");
Bien, como veis, en los dos condicionales if se muestra exactamente lo mismo. Lo que quiero saber es si hay algun método para unirlo para ahorrarme código. Pongo un ejemplo que NO funciona para que os hagáis una idea 'visual':

Código:
for (int a = 1; a < numPlayers; a++)
{
     player[a].setText("Es tu turno!");
}
Esta porción de texto la acabo de hacer, ya sé que no es lo mismo lo primero que lo segundo, pero es para que veáis que quiero el TextView dinámico.

Un saludo y gracias de antemano!
Responder Con Cita


  #2  
Viejo 14/02/12, 00:03:24
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Observación 1) ¿Estás seguro que ese int a = 1 es así y no debería ser int a = 0? Cada uno programa como le da la gana, si la inicialización la has hecho sobre player[1] y player[2] entonces debería dar igual, pero lo lógico es que esté hecha sobre player[0] y player[1].

Observación 2) ¿Has inicializado correctamente los elementos del array cada uno apuntando a su TextView?
Responder Con Cita
  #3  
Viejo 14/02/12, 12:39:28
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

Como ya había dicho es un simple ejemplo de cómo me gustaría usarlo pero no se puede utilizar así. Yo tengo esto:

TextView player1, player2;
int players = 2;

player1 = (TextView)findViewById(R.id.player1);
player2 = (TextView)findViewById(R.id.player2);

player1.setText('hola');
player2.setText('hola');

Pero lo que yo quiero es que ese texto se ponga dinámicamente sin tener que poner dos TextViews, por ejemplo:

For (int a = 1; a < players; a++)
{
player[a].setText('hola');
}

Inicializo con a = 1 porque en el ejemplo no he declarado ninguna variable player0.

En el ejemplo lo he puesto con 2, pero yo lo quiero hacer con 7, y no sólo una, sino varias veces, y si me lo puedo ahorrar me lo ahorro y lo optimizo.

Si intentas ponerlo todo en un proyecto nuevo tal y como lo he puesto, te dará un error en la parte del for. Exactamente en player[a] porque no es una variable, sino un TextView.

Yo no quiero enlazar un array con los TextView porque estoy en las mismas. Cómo pongo eso en un for?


Espero que me harías entendido.

Gracias por contestar.

Un saludo.

Enviado desde mi LG-P970 usando Tapatalk
Responder Con Cita
  #4  
Viejo 14/02/12, 12:54:20
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Es que eso no funciona así player[1] no es lo mismo que player1. Ya te lo he dicho varias veces, te aconsejo que te cojas un curso de Java a fondo antes de seguir con Android, te veo bastante verde en programación general, y ya ni que decir en POO.

Para que ese código funcionase tienes en primer lugar que declarar player, como un array de TextView, y en segundo lugar asignarle los TextView.

TextView player1, player2;
int players = 2;
TextView player[] = new TextView[players];

player1 = (TextView)findViewById(R.id.player1);
player2 = (TextView)findViewById(R.id.player2);
player[0] = player1;
player[1] = player2;

for (int a = 0; a < players; a++)
{
player[a].setText('hola');
}

Eso sería un código correcto, de todas formas si lo que quieres es tener 1 solo TextView y que el texto se vaya modificando según el jugador, no tiene nada que ver con lo que tienes hecho.
Responder Con Cita
  #5  
Viejo 14/02/12, 14:19:59
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

A ver, yo ya sé que player1 no es lo mismo que player[1], lo que pasa que lo decía de modo que otros pudieran entenderlo mejor. Parece que me he explicado mal entonces.

Y tienes razón, de Java no tengo ni idea, nunca he hecho nada en Java, solo he hecho en C++, y por lo que llevo programado en Java es exactamente lo mismo que C++, sólo que claro cambian diversas cosillas pero la estructuración es muy muy parecida.

Si me he puesto con Android y Java es porque la programación la aprendo más rápida y efectivamente yo solo que me la enseñe un supuesto profesor, dejarme la pasta y que lo haga mal. Pero bueno esa no es la cuestión.

Gracias por la respuesta.
Responder Con Cita
  #6  
Viejo 14/02/12, 15:35:31
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Si sabes C++ entonces si que tienes bastante base para programar en Java.

Y no te tomes a mal lo que te he dicho, pero es que la mayoría de dudas que tienes es sobre cosas básicas de Java, y no sobre Android en particular. Por eso te lo decía.

De todas formas aquí estamos para ayudar, por eso te aclaré la duda, si sigues teniendo más dudas aquí estamos.
Responder Con Cita
  #7  
Viejo 14/02/12, 19:34:59
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

No no, en ningún momento me lo he tomado mal. Es más, entiendo tu posición, ya que hay mucha gente que pregunta cosas que salen como primer resultado en google antes mirarse nada (entre los cuales nome incluyo, siempre busco exhaustivamente información en castellano y en inglés, aunque muchas veces no se encuentra la información como a uno le gustaría encontrar).

Alguna cosilla básica sí que he preguntado porque ya hacia unos meses que no tocaba C++ antes de ponerme con Java y el framework de Android, y al mirar mis códigos y apuntes de C++ no me aclaraba mucho.

Gracias por tu comprensión y, sobretodo, tu ayuda.

Un saludo.
Responder Con Cita
Respuesta

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



Hora actual: 13:16:02 (GMT +1)



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

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