Home Menu

Menu



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/12, 23:22:19
Avatar de KrLx_roller
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
Mensajes: 522
Compra y venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de KrLx_roller
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
Mensajes: 522
Compra y venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de KrLx_roller
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
Mensajes: 522
Compra y venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de KrLx_roller
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
Mensajes: 522
Compra y venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -
Mencionado: 2 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


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: 23:20:58 (GMT +1)

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