victorzs93
22/12/13, 21:47:46
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 :
valorar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ValorarActivity.class);
startActivityForResult(intent, 3);
}
});
Este seria el codigo recogido en el activity valorar cuando pulso en aceptar:
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();
}
});
Y este seria el codigo donde recojo la valoracion en el activity principal:
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"));
}
}
El log del error seria el siguiente:
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
Este es el codigo que llama al activity donde realizo la valoracion:
Código :
valorar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ValorarActivity.class);
startActivityForResult(intent, 3);
}
});
Este seria el codigo recogido en el activity valorar cuando pulso en aceptar:
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();
}
});
Y este seria el codigo donde recojo la valoracion en el activity principal:
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"));
}
}
El log del error seria el siguiente:
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