![]() |
|
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 |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
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"); } } |
|
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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. |
#5
|
||||
|
||||
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 ![]() |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 23:30:20 (GMT +2)
HTCMania: líderes desde el 2007