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 22/05/14, 22:59:31
Avatar de Red_Wolf
Red_Wolf Red_Wolf no está en línea
Usuario poco activo
Mensajes: 17
 
Fecha de registro: may 2014
Localización: Valencia
Mensajes: 17
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
onActivityResult

Tengo una duda y no se como solucionarla

Tengo una actividad que contiene dos variables tipo String, una para almacenar un nombre masculino y otra para uno femenino.
En esta actividad, la idea es tener dos funciones, una que llame mediante startactvityforresult() una actividad destinada a recoger el nombre masculino y una vez cerrada esta actividad, utilizaría otra función para abrir una nueva actividad similar para almacenar el valor femenino.
El caso es que a la hora de definir la función para recoger el valor mediante onactivityresult(), no me deja definirlo dentro de las funciones que iniciarían el startactvityforresult(),ya que me da error, obligándome a hacerlo fuera, con lo que por lo que creo, tan solo me permitiría recoger un resultado de alguna d las actividades.
Cómo podría solucionar esto? Os dejo parte del código. Gracias.

private static final int MALENAME = 0;


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_couple_game);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}

introMaleName();
introFemaleName();
}

private void introMaleName() {
Intent i = new Intent(this, ActivityMaleName.class);
startActivityForResult(i, MALENAME);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Resultado cancelado", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_OK) {
STR_MaleName = data.getExtras().getString("MaleName");
}

}
Responder Con Cita


  #2  
Viejo 22/05/14, 23:31:35
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
No se que significa esto: no me deja definirlo dentro de las funciones que iniciarían el startActvityForResult()

De todas formas, y con lo poco que he entendido, lo ideal es llamar primero a startActivityForResult para el nombre masculino, después en el onActivityResult recoger el nombre masculino y ahí iniciar el nuevo startActivityForResult para el femenino, y una vez recogido en el onActivityResult otra vez rellenar la ventana.
Responder Con Cita
  #3  
Viejo 27/05/14, 23:31:44
Avatar de Red_Wolf
Red_Wolf Red_Wolf no está en línea
Usuario poco activo
Mensajes: 17
 
Fecha de registro: may 2014
Localización: Valencia
Mensajes: 17
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Me refería a si intentara hacer algo tal que así:

private void introMaleName() {
Intent i = new Intent(this, ActivityMaleName.class);
startActivityForResult(i, MALENAME);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Resultado cancelado", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_OK) {
STR_MaleName = data.getExtras().getString("MaleName");
}

}
}



private void introFealeName() {
Intent i = new Intent(this, ActivityFemaleName.class);
startActivityForResult(i, FEMALENAME);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Resultado cancelado", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_OK) {
STR_FemaleName = data.getExtras().getString("FemaleName");
}

}
}

No me deja hacerlo, me da error.
Te refieres a iniciar con startactivityforresult dentro del onactivityresult? Muchas gracias.
Responder Con Cita
  #4  
Viejo 27/05/14, 23:54:23
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
No puedes hacerlo en primer lugar porque no puedes definir un método dentro de otro método, los métodos sólo se pueden definir dentro de clases o implementaciones de clases. Y en segundo lugar el onActivityResult sólo tiene sentido dentro de un Activity o un Fragment, ya que será el que lo llame cuando vuelva el control a esa ventana, y sólo puede haber uno dentro de cada clase.

Si, me refiero a llamar a un startActivityForResult dentro de el onActivityResult.
Responder Con Cita
  #5  
Viejo 28/05/14, 21:15:00
Avatar de Red_Wolf
Red_Wolf Red_Wolf no está en línea
Usuario poco activo
Mensajes: 17
 
Fecha de registro: may 2014
Localización: Valencia
Mensajes: 17
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
No es la solución que busco ya que la idea es poder crear dos actividades una para introducir un nombre masculino y otra para introducir un nombre femenino que se puedan llamar de forma independiente ya que no necesariamente se necesitará introducir un nombre de cada sexo, sino que quizá llamaríamos a dos hombres, a dos mujeres, etc. Con lo que, lo ideal sería crear una actividad para cada sexo a las que podemos llamar desde otra actividad y que nos permita recoger el nombre introducido e iniciarlas las veces que sean necesarias.
La idea seria algo así:
Inicio actividad principal -> Llamo al método que me permite abrir la actividad de introducir un nombre masculino, recoge la información y la cierra -> Llamo al método que me permite abrir la actividad de introducir un nombre femenino, recoge la información y la cierra -> Llamo las veces que haga falta a cualquiera de las dos actividades para recoger los nombres que quiera -> Tengo todos los nombres en variables String de la actividad principal.

Ya se que mareo un poco, pero es que no se como hacerlo. Muchísimas gracias
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:30:20 (GMT +2)

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