|
||
|
![]() |
![]() |
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
|
||||
|
||||
Ayuda al pasar datos de una activity a otra
Hola buenas, soy nuevo en este foro, estoy empezando a programar en android y tengo que hacer un ejercicio en el que una parte de la aplicacion es una ventana con una valoracion numerica, y esta valoracion la tengo que recoger en el activity principal para mandarlo a otra activity que me muestra la media de las valoraciones, ademas de mostrar el total de valoraciones en el activity principal, pero al realizar la valoracion y pulsar en aceptar la aplicacion se queda colgada y se cierra y no soy capaz de encontrar el fallo, a ver si alguno puede echarme una mano, gracias.
Este es el codigo que llama al activity donde realizo la valoracion: Código : Código:
valorar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ValorarActivity.class); startActivityForResult(intent, 3); } }); Código : Código:
((Button)findViewById(R.id .bAceptarVer)).setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Intent data = new Intent(); EditText valoracion = (EditText) findViewById(R.id.valoracion); int suma = Integer.parseInt( valoracion.getText().toString()); data.putExtra("suma", suma); setResult(RESULT_OK); finish(); } }); Código : Código:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if((resultCode==RESULT_OK) && (requestCode== 3)){ numValoraciones++; sumaValoraciones += Integer.parseInt(data.getStringExtra("suma")); } } 01-04 12:58:32.509: E/AndroidRuntime(8641): FATAL EXCEPTION: main 01-04 12:58:32.509: E/AndroidRuntime(8641): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=3, result=-1, data=null} to activity {com.example.pdm02/com.example.pdm02.MainActivity}: java.lang.NullPointerException 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.ActivityThread.deliverResults(Activity Thread.java:2544) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.ActivityThread.handleSendResult(Activi tyThread.java:2586) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.ActivityThread.access$2000(ActivityThr ead.java:121) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:973) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.os.Handler.dispatchMessage(Handler.java:99 ) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.os.Looper.loop(Looper.java:130) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.ActivityThread.main(ActivityThread.jav a:3768) 01-04 12:58:32.509: E/AndroidRuntime(8641): at java.lang.reflect.Method.invokeNative(Native Method) 01-04 12:58:32.509: E/AndroidRuntime(8641): at java.lang.reflect.Method.invoke(Method.java:507) 01-04 12:58:32.509: E/AndroidRuntime(8641): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:878) 01-04 12:58:32.509: E/AndroidRuntime(8641): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:636) 01-04 12:58:32.509: E/AndroidRuntime(8641): at dalvik.system.NativeStart.main(Native Method) 01-04 12:58:32.509: E/AndroidRuntime(8641): Caused by: java.lang.NullPointerException 01-04 12:58:32.509: E/AndroidRuntime(8641): at com.example.pdm02.MainActivity.onActivityResult(Ma inActivity.java:74) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.Activity.dispatchActivityResult(Activi ty.java:3908) 01-04 12:58:32.509: E/AndroidRuntime(8641): at android.app.ActivityThread.deliverResults(Activity Thread.java:2540) 01-04 12:58:32.509: E/AndroidRuntime(8641): ... 11 more |
|
#2
|
||||
|
||||
El error está en MainActivity.class en la linea 74, es lo que causa el error.
01-04 12:58:32.509: E/AndroidRuntime(8641): at com.example.pdm02.MainActivity.onActivityResult(Ma inActivity.java:74) He intentado leer un poco lo que intentas hacer pero no lo entiendo. Si posteas que linea es la 74 podemos empezar por algo. Y no se, me da la sensación de que tu app trabajará con muchos datos, si es así a lo mejor te sale mejor usar Base de datos sqlite, y si solo es un dato, puedes trabajar con el usando el sharedpreferences. Así podrás acceder a esos datos desde cualquier activity sin problema.
__________________
![]() |
#3
|
||||
|
||||
Estás devolviendo un Integer, como se ve aquí:
int suma = Integer.parseInt( valoracion.getText().toString()); data.putExtra("suma", suma); Y estás leyendo un String, como se ve aquí: sumaValoraciones += Integer.parseInt(data.getStringExtra("suma")); La solución, la que prefieras, o enviar un String o recoger un Integer, dado tu caso creo que lo mejor es recoger el Integer directamente. EDITO: Me he parado a mirar eso y ni siquiera me había fijado en que no estás devolviendo NADA, porque el data no lo asignas en el setResult, cambia esto: setResult(RESULT_OK); Por esto: setResult(RESULT_OK, data); Última edición por kriogeN Día 22/12/13 a las 23:06:24. |
Gracias de parte de: | ||
#4
|
||||
|
||||
Muchisimas gracias, vaya despiste jajajaja era lo que dices, no me fije que no estaba devolviendo nada, tenia que poner el data. Despiestes del inicio, gracias me estaba volviendo loco y lo obvie jajajajaja
|
![]() |
![]() |
||||||
|