2012-09-14 2 views
0

현재 주 활동이 정보 수집을위한 다른 활동을 시작한 다음 주요 활동으로 돌아가는 프로젝트가 있습니다. 뒤로 버튼 누르기를 처리하려고합니다. 다음 코드를 실행할 때마다 충돌이 발생합니다. 그러나 나는 왜 그런지 이해하지 못한다.android back button handling

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 

     finish(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
}; 

나는 또한 시도 :

@Override 
    public void onBackPressed() { 
      finish(); 
    }; 

스택 추적 :

09-14 15:30:13.740: E/AndroidRuntime(32400): FATAL EXCEPTION: main 
09-14 15:30:13.740: E/AndroidRuntime(32400): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=0, data=null} to activity {peaBerry.Shopping.Consultant/peaBerry.Shopping.Consultant.PeaBerryTeaActivity}: java.lang.NullPointerException 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.ActivityThread.deliverResults(ActivityThread.java:2655) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2697) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.ActivityThread.access$2000(ActivityThread.java:124) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:998) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.os.Looper.loop(Looper.java:130) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.ActivityThread.main(ActivityThread.java:3806) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at java.lang.reflect.Method.invokeNative(Native Method) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at java.lang.reflect.Method.invoke(Method.java:507) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at dalvik.system.NativeStart.main(Native Method) 
09-14 15:30:13.740: E/AndroidRuntime(32400): Caused by: java.lang.NullPointerException 
09-14 15:30:13.740: E/AndroidRuntime(32400): at peaBerry.Shopping.Consultant.PeaBerryTeaActivity.onActivityResult(PeaBerryTeaActivity.java:312) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.Activity.dispatchActivityResult(Activity.java:3958) 
09-14 15:30:13.740: E/AndroidRuntime(32400): at android.app.ActivityThread.deliverResults(ActivityThread.java:2651) 
+0

이 코드는 주 활동에서 시작되는 두 번째 활동에 있습니다. 설명 – Orthmius

+0

onBackPressed()를 사용하지 않는 이유는 무엇입니까? –

+1

"깨지다"? 방법? 그것은 추락합니까? 그것은 아무것도하지 않습니까? 컴퓨터가 분해됩니까? – Eric

답변

3

를 오류 메시지에 따르면, 그 결과가 없습니다. startActivityForResult()으로 두 번째 활동을 시작하셨습니까? 그렇다면 보조 활동에 finish()을 호출하기 전에 setResult(value) 또는 setResult(value, data)을 추가하여 예상되는 결과를 호출 활동으로 다시 전달하십시오.