Sony Xperia Play Para hablar del Xperia con controles tipo PSP. También conocido como PSP Phone


 
Herramientas
  #1  
Viejo 23/03/12, 11:43:32
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Thumbs up Bucles en android (JAVA)

Bueno, hace unos dias empece a leer tutoriales de java para android, etcetc..... Y ya tengo mi primer problema que seguramente sea un fallo tonto, pero aun asi necesito ayuda....

Resulta que estoy utilizando la aplicación AIDE (market) para desarrollar, compilar y crear los apk.....

Hasta aqui bien, pero he tratado de hacer un bucle (finito), en el que ponga helloworld 15 veces, pero solo lo muestra una vez.... Aqui mi codigo..

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity
{
/** Called when the activity is first created. *
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView HW = new TextView (this) ;
HW.setText("HELLOWORLD");
int i = 1;
for (i = 0; i < 10; i++)
{
setContentView(HW); }

}
}


Alguien ve el fallo??? Añado una imagen...
Imágenes Adjuntas
Tipo de Archivo: png screenshot_2012-03-23_1143.png (13.1 KB, 140 visitas)

Última edición por bamsbamx Día 23/03/12 a las 11:48:34
Responder Con Cita


  #2  
Viejo 23/03/12, 12:50:29
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Por que seteas dos veces i?

Edit...

Creo que ya he visto tu fallo, voy de cabeza y no lo puedo probar pero lo que estás haciendo es lo siguiente:

Has creado un objeto del tipo TextView y lo rellenas 10 veces... en realidad tu bucle, si que se recorre las veces que quieres, el problema es que en todas ellas haces exactamente lo mismo...

haz una prueba... cambia el contenido de tu for por esto setContentView(i);

Si te sale un 0 es que solo se recorre una vez, si te sale un 9 se recorre 10 y ya tienes la pista de que el for no es el culpable. Siento no poder ayudarte mucho más pero es que no puedo probar tu codigo y no he trabajado con android.

Un saludo.

Última edición por Tit0lin Día 23/03/12 a las 13:04:08
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 23/03/12, 15:48:27
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas gracias, pero si hago lo que me has dicho, al abrir el apk instalado me da force close.... Ni idea de porque... lo he intentado tambien con while y sale lo mismo.....

Alguna solucion?????

PD: Por que dices lo de setear dos veces????

AÑADO: tambien he intentado tambien con System.out.println("HelloWorld"); pero no sale nada

Última edición por bamsbamx Día 23/03/12 a las 16:02:53
Responder Con Cita
  #4  
Viejo 23/03/12, 19:51:20
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
El system.Out.... Es para imprimir por consola, no para mandarle nada a la pantalla.

Si te da error, yo que tu probaría a ver que hace cada línea, yo me hago una idea, pero como no se como funcionan las clases de la SDK de android no te puedo ayudar mucho...

Una de las cosas que tienes que tener clara es esta:

Que quieres hacer? Rellenar un textview 10 veces ósea "hola mundo hola mundo hola mundo..." o crear 10 objetos textview y darles el valor de "hola mundo" a cada uno? Date cuenta que sólo creas un objeto textview.

Lo de testear dos veces me refiero a que en una línea haces int I = 1; y dentro del bucle inicializas I a 0

Espero ayudarte

Enviado desde mi Sony Ericsson Xperia Play
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 23/03/12, 22:35:12
Avatar de Vicktoroid
Vicktoroid Vicktoroid no está en línea
Miembro del foro
Mensajes: 107
 
Fecha de registro: nov 2011
Localización: México
Mensajes: 107
Modelo de smartphone: HTC M9
Versión de ROM: Stock 5.1
Tu operador: TELCEL
Mencionado: 0 comentarios
Tagged: 0 hilos
Prueba quitando esta linea HW.setText("HELLOWORLD \n"); y luego colocarla dentro de tu ciclo y te propongo quitar int i =1 y poner dentro del ciclo int i = 0, como dice el compañero de arriba le das valor dos veces a la variable i

p.d la \n no se si hace lo mismo en android pero es un salto de linea, como lo hace java

Última edición por Vicktoroid Día 23/03/12 a las 22:37:16
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 23/03/12, 22:55:18
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Pero el setText no se debe usar tal cual, no hay que olvidar que lo que quiere hacer es añadir texto una y otra vez, no machacar texto... Después de probar lo que propones añadiría el poner lo siguiente
HW.setText(HW.getText + "HELLOWORLD")

Enviado desde mi Sony Ericsson Xperia Play
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 24/03/12, 21:02:34
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Vale, ya he optimizado el codigo, ha funcionado y ha quedado así:

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity
{
/** Called when the activity is first created. *
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView HW = new TextView (this) ;
HW.setText("HELLOWORLD \n");
int i;
for(i = 0; i < 11; i++)
{
setContentView(HW);
HW.setText(HW.getText() + "HELLOWORLD \n");
}

}
}

A ver si entiendo lo que he hecho . El programa imprime un hello world, y luego asigna al HW lo anteriormente escrito y lo vuelve a escribir, no???
Imágenes Adjuntas
Tipo de Archivo: png screenshot_2012-03-24_2056.png (34.4 KB, 102 visitas)
Responder Con Cita
  #8  
Viejo 24/03/12, 22:12:18
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Lo que haces es esto.

Instancias un objeto de la clase TextView en una variable llamada HW al hacer esto, puedes usar los métodos de la clase textview como setText para meterle el texto "hola mundo" luego entras en un bucle de 10 itinerancias el cual pinta en la variable HW lo que haya en esta más "hola mundo" por esto consigues que por cada vuelta del bucle no se pierda lo que había antes escrito, esto lo consigues con el getText concatenado con el resto del texto.

Espero haber sido claro, porque desde el móvil me es un poco difícil explicarme jajajajaja.

Un saludo y enhorabuena por tu logro

Enviado desde mi Sony Ericsson Xperia Play
Responder Con Cita
Gracias de parte de:
  #9  
Viejo 25/03/12, 10:26:50
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas gracias por la respuesta... si tengo otra pregunta ( que seguro que la tendre) ya me pasaré por aqui jejejeje
Responder Con Cita
  #10  
Viejo 25/03/12, 15:36:35
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Si puedo responderte, estaré encantado de hacerlo

Enviado desde mi Sony Ericsson Xperia Play
Responder Con Cita
Gracias de parte de:
  #11  
Viejo 28/03/12, 21:44:54
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
ya estamos.... otra duda.... jejejejej

si en vez de poner el texto "hello world", quiero poner el valor de la variable "i"??????
lo he intentado pero parece que el HW.setText no es compatible con (HW.getText()+ i) o algo asi....
Responder Con Cita
  #12  
Viejo 29/03/12, 08:34:41
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Claro, el metodo setText solo te permitirá meter texto del tipo string es logico, asi que lo que has de hacer es esto:

(HW.getText()+ i.toString())

Lo que te está pasando es que setText te pide un parametro del tipo String y tu variable i es del tipo int.

Comprueba que funciona y me cuentas ;). Un saludo.
Responder Con Cita
Gracias de parte de:
  #13  
Viejo 29/03/12, 10:16:44
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas graciaaas ;) pero una última pregunta, a ver si puedo no hacer tantas preguntas jejejej

Eso del .toString se llama metodo, no??? Sabes si existe alguna lista con los método de java y su descripción??? Asi, con ctrl- f puedo resolver muchas de mis dudas.... Como sabias que existia ese método???

Gracias por la atención, otra vez
Responder Con Cita
  #14  
Viejo 29/03/12, 11:04:05
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Pues se que existe ese metodo porque lo uso a diario, y claro que existe una lista... te metes en la documentación de la clase que estás usando por ejemplo... si quieres saber que puedes hacer con un objeto del tipo int buscas la documentación de la clase Integer que es de la que hereda int y ahí tienes todo lo que tienes que saber.

Aquí tienes la de Integer ;)
http://docs.oracle.com/javase/1.4.2/...g/Integer.html

Un saludo ;)
Responder Con Cita
Gracias de parte de:
  #15  
Viejo 29/03/12, 14:59:50
Avatar de bamsbamx
bamsbamx bamsbamx no está en línea
Miembro del foro
Mensajes: 299
 
Fecha de registro: sep 2011
Mensajes: 299
Modelo de smartphone: Samsung Galaxy S25
Versión de Radio: AM o FM??
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Graaaaaaaax!!!!!
Responder Con Cita
  #16  
Viejo 29/03/12, 16:15:26
Avatar de Tit0lin
Tit0lin Tit0lin no está en línea
Miembro del foro
Mensajes: 221
 
Fecha de registro: ago 2008
Mensajes: 221
Modelo de smartphone: Sony ericsson Xperia Play
Versión de ROM: 2.3.4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
De nada colega

Enviado desde mi Sony Ericsson Xperia Play
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   HTCMania > Foros Sony > Otros smartphones antiguos de Sony > Sony Xperia Play


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: 01:36:58 (GMT +2)

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