2010-06-16 2 views
0

안녕하세요, 저는 startActivityForResult 메소드로 앱 A에 의해 호출 된 애플리케이션 B를 만들었습니다. B는 응용 프로그램이 충돌로 결과를 반환하려고 나는이 오류가"startActivityForResult"에 의해 시작된 활동이 데이터를 반환 할 때 충돌합니다.

06-16 09:40:32.506: WARN/dalvikvm(744): threadid=3: thread exiting with uncaught exception (group=0x4001b390) 
06-16 09:40:32.506: ERROR/AndroidRuntime(744): Uncaught handler: thread main exiting due to uncaught exception 
06-16 09:40:32.526: ERROR/AndroidRuntime(744): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.sistematica.carichispeciali/com.sistematica.carichispeciali.MobiWork}: java.lang.NullPointerException 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3504) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3546) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.ActivityThread.access$2700(ActivityThread.java:126) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1962) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.os.Looper.loop(Looper.java:123) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.ActivityThread.main(ActivityThread.java:4595) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at java.lang.reflect.Method.invoke(Method.java:521) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at dalvik.system.NativeStart.main(Native Method) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744): Caused by: java.lang.NullPointerException 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at com.sistematica.carichispeciali.MobiWork.onActivityResult(MobiWork.java:96) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.Activity.dispatchActivityResult(Activity.java:3868) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3500) 
06-16 09:40:32.526: ERROR/AndroidRuntime(744):  ... 11 more 

이 (방식 com.sistematica.carichispeciali.MobiWork에 의해 응용 프로그램 A,에 startActivityForResult와 B를 호출하는 일입니다) B는 결과

private void risultato(final String paper) 
     { 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setIcon(R.drawable.alt); 
      builder.setTitle("risultato"); 
      builder.setMessage("è "+paper+" la targa?"); 
      builder.setPositiveButton("si", new DialogInterface.OnClickListener(){ 
       @Override 
       public void onClick(DialogInterface dialog, int which) 
       { 
       dialog.dismiss(); 
       resultIntent = new Intent(); 
       resultIntent.putExtra("1", paper); 
       setResult(Activity.RESULT_OK, resultIntent); 
       finish(); 
       } 
      }); 
      builder.setNegativeButton("no", new DialogInterface.OnClickListener(){ 
       @Override 
       public void onClick(DialogInterface dialog, int which) 
       { 
       delRES(); 
       } 
      }); 
      builder.show(); 
     }; 

를 반환하고 이것은 그것을 사용하는 방법입니다 어떻게

(이 반환 된 문자열을하고 EDITTEXT에 넣어해야, 정말 작동하는 경우 그 이전에 충돌하기 때문에 볼 menaged되지 않습니다)
public void onActivityResult(int requestCode, int resultCode, Intent data) {  
     super.onActivityResult(requestCode, resultCode, data); 
     switch(requestCode) { 
     case (1) : { 
      if (resultCode == Activity.RESULT_OK) { 
      String newText = data.getStringExtra("1"); 
      m_plateField.setText(newText); 
      } 
      break; 
     } 
     } 
    } 
+0

단계 디버거를 통해 확인은 MobiWork.java:96이 뭔가를 솔기 null – Pentium10

+0

그들이 준 응용 프로그램 "A"가 나에게 준 문제가있는 것 같습니다. 실제로 실제로 editText 상자를 선언하지 않습니다. 이것이 NullPointerException을주었습니다. – AGarofoli

답변

0

는 나는이 라인과 관련이있다 생각 :

String newText = data.getStringExtra("1"); 

것은 null을 반환 할 수있다. 그런 다음

resultIntent.putExtra("com.sistematica.carichispeciali.1", paper); 

읽을로 : 당신이 여분의 추가, 앞에 추가 응용 프로그램 패키지를

String newText = data.getStringExtra("com.sistematica.carichispeciali.1"); 
관련 문제