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 09/08/12, 04:25:29
Array

[xs_avatar]
nornak nornak no está en línea
Usuario novato en la web
 
Fecha de registro: jun 2012
Mensajes: 2
Tu operador: Movistar

recuperar nombre ingresado en otra activity

buenas
estoy mas menos recien empezando a programar para android. Estoy intentado hace una aplicacion y no puedo hacer que al empezar una activity, para pedir un nombre al usuario y que al presionar en un boton "agregar", pueda desde la activite que la llamo, lograr obtener ese nombre ingresado.
Buscando he llegado al metodo starActivityForResult(), por lo que entendi, es como para indicar cuando termine la activity se llama al metodo onActivityResult(), pero sigo sin saber como hacer para pasar el nombre ingresado de una activity a otra
Responder Con Cita


  #2  
Viejo 09/08/12, 08:51:36
Array

[xs_avatar]
truxky truxky no está en línea
Miembro del foro
 
Fecha de registro: nov 2010
Localización: Madrid
Mensajes: 150
Modelo de smartphone: Samsung Galaxy SIII
Tu operador: Yoigo
Buenos días.

Si lo que quieres es pasar parámetros de una actividad a otra, lo tienes que meter como parámetros del intent al que llamas la nueva actividad.

Este seria un ejemplo:

En la 1ª activity, cuando vas a llamar a la segunda actividad
------------------
String sCadena = "Hola";
Intent intent = new Intent();
intent.setClass(getApplicationContext(), SegundaActividad.class);
intent.putExtra("Nombre_parametro", sCadena);
startActivityForResult(intent, Codigo_Retorno);


En la 2ª activity, para recuperar el valor del parámetro
------------------
Intent intent = getIntent();
Bundle todosParametros = intent.getExtras();
String sParametroObtenido = "";
sParametroObtenido .setText(todosParametros.getString("Nombre_paramet ro"));

Espero que quede claro, y si tienes cualquier duda, pregunta y busca mucha información en Internet, que hay mucha créeme.

Un saludo.
Responder Con Cita
  #3  
Viejo 09/08/12, 12:08:09
Array

[xs_avatar]
Celtium Celtium no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Mensajes: 432
Modelo de smartphone: Nexus One, 4

Hola, que tal?

Quieres que una actividad llame a otra y esta ingrese unos datos de usuario y se cierre. (para eso hay dialog entre otras cosas, pero si vas a tener muchas de esas ventanas yo prefiero hacer una activity, me resulta mas ordenado que llenar las actividades de dialogs)

estas variables ponlas en las dos actividades:
int REGISTRO=1;
int REGISTRADO=10;
int SIN_DATOS=0;

La actividad principal llamara a la secundaria mas o menos así:

intent = new Intent(PrincipalActivity.this, SecundariaActivity.class);
intent.putExtra("opcion", REGISTRO);
startActivityForResult(intent, REGISTRO);

La secundaria recibe los datos en el oncreate:

Bundle reicieveParams = getIntent().getExtras();
final int opcion=reicieveParams.getInt("opcion");

tienes "opcion" que te dirá quien llamo a la actividad secundaria.

haces lo que tenga que hacer la secundaria obteniendo los datos de usuario y contraseña (por ejemplo)
String usuario= "pablo";
String contraseña = "123456"

después cuando termine de obtener esos datos tendrás que devolver los datos, para esto creamos un métodos que llamaremos returnToCaller.
Llama al método al final del proceso de obtención de datos con el resultado que sea:
returnToCaller(SIN_DATOS);
o
returnToCaller(REGISTRO);

El método sera algo así:

private void returnToCaller(int opcion){
Intent intent = new Intent();

if (opcion==SIN_DATOS){
setResult(SIN_DATOS,intent);
onDestroy();
} else
if (opcion==REGISTRADO){
intent.putExtra("usuario", usuario);
intent.putExtra("contraseña", contraseña );
setResult(REGISTRADO,intent);
onDestroy();
}

Este método cierra la actividad secundaria y...
manda los datos a la principal que los recibirá en el método:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);

switch (requestCode){

case SIN_DATOS:
if (resultCode == SIN_DATOS) {
...
}
break;

case REGISTRADO:
if (resultCode == REGISTRADO) {
Bundle reicieveParams = data.getExtras();
String usuario = reicieveParams.getString("usuario");
String contraseña = reicieveParams.getString("contraseña");
}
break;
default: break;
}
}

Haz pruebas mira los resultados que mandan y responden las actividades, esto se entiende haciéndolo, nada más. No probé este código míralo.

Para los datos de registro de usuario, contraseña, etc se puede hacer de otro modo. Son datos importantes que tienen que quedar mucho tiempo, no perderse al terminar la actividad etc, para eso hay las SharedPreferences.

public static final String PREFERENCIAS_USUARIO = "Su nombre"; //String
public static final String PREFERENCIAS_CONTRASENA = "contraseña"; //String

Mucho mejor.

Suerte ;)
Responder Con Cita
  #4  
Viejo 10/08/12, 00:01:27
Array

[xs_avatar]
nornak nornak no está en línea
Usuario novato en la web
 
Fecha de registro: jun 2012
Mensajes: 2
Tu operador: Movistar

gracias por las respuestas
@truxky, lo que yo queria hacer era en el otro sentido, recuperar informacion de una activity, me enrede mucho en explicar XD

@Celtium:
esto es lo que queria hacer, ya lo he probado y me funciona

hace tiempo que tenia este problema y era re simple XD
Responder Con Cita
Respuesta

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



Hora actual: 16:26:20 (GMT +2)



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

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