나는이 코드를 사용하여 뒤로 버튼을 눌렀을 때 이전 활동을 다시로드하지만 내 앱이 충돌합니다.이 경우 null 포인터 예외가 발생합니다. 여기서 문제가 될 수있는 것은 무엇입니까?다시 액티비티를 다른 액티비티에서 다시로드하는 방법
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
keyCode= KeyEvent.KEYCODE_BACK;
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent i=getIntent();
final Bundle b = i.getExtras();
Intent in = new Intent(this,UserProductActivity.class);
in.putExtra("id", Integer.parseInt(b.get("id").toString()));
in.putExtra("itemname", b.get("itemname").toString());
in.putExtra("amt", b.get("amt").toString());
in.putExtra("clientCode", b.get("code").toString());
in.putExtra("day", b.get("day").toString());
setResult(0,in);
return true;
}
return super.onKeyDown(keyCode, event);
}
로그 캣
09-01 10:46:32.656: E/AndroidRuntime(4356): FATAL EXCEPTION: main
09-01 10:46:32.656: E/AndroidRuntime(4356): java.lang.NullPointerException
09-01 10:46:32.656: E/AndroidRuntime(4356): at com.example.senditem.UserItemDetailActivity.onKeyDown(UserItemDetailActivity.java:139)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.view.KeyEvent.dispatch(KeyEvent.java:2641)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.app.Activity.dispatchKeyEvent(Activity.java:2393)
09-01 10:46:32.656: E/AndroidRuntime(4356): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2023)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:4118)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:4061)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3144)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.os.Handler.dispatchMessage(Handler.java:107)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.os.Looper.loop(Looper.java:194)
09-01 10:46:32.656: E/AndroidRuntime(4356): at android.app.ActivityThread.main(ActivityThread.java:5400)
09-01 10:46:32.656: E/AndroidRuntime(4356): at java.lang.reflect.Method.invokeNative(Native Method)
09-01 10:46:32.656: E/AndroidRuntime(4356): at java.lang.reflect.Method.invoke(Method.java:525)
09-01 10:46:32.656: E/AndroidRuntime(4356): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
09-01 10:46:32.656: E/AndroidRuntime(4356): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
09-01 10:46:32.656: E/AndroidRuntime(4356): at dalvik.system.NativeStart.main(Native Method)
UserItemDetailActivity.java에서 139 행에있는 내용 –
'startActivityForResult'를 사용하고 있습니까 ?? –
예 내 의도로 데이터를 전달하기 때문에 이전 액티비티에서 startActivityForResult를 사용하고 있습니다. 원하는 것은 지난 액티비티의 데이터를 이전 액티비티로 되돌려 놓고 setResult를 사용하는 것입니다. – phoenix