我已經開始了另一個活動,我想將結果返回給調用它的活動,我已閱讀了一些教程並嘗試了一下,但出現如下錯誤:如何正確返回已啓動活動的結果
08-23 17:48:58.005: E/AndroidRuntime(581): java.lang.RuntimeException: Failure delivering result ResultInfo{who=Tab2, request=0, result=-1, data=Intent { cmp=com.organizer.medical.activities/.AddPatientActivity (has extras) }} to activity {com.organizer.medical.activities/com.organizer.medical.activities.Main}: java.lang.NullPointerException
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityThread.deliverResults(ActivityThread.java:2980)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3023)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityThread.access$1100(ActivityThread.java:123)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1177)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.os.Handler.dispatchMessage(Handler.java:99)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.os.Looper.loop(Looper.java:137)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityThread.main(ActivityThread.java:4424)
08-23 17:48:58.005: E/AndroidRuntime(581): at java.lang.reflect.Method.invokeNative(Native Method)
08-23 17:48:58.005: E/AndroidRuntime(581): at java.lang.reflect.Method.invoke(Method.java:511)
08-23 17:48:58.005: E/AndroidRuntime(581): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-23 17:48:58.005: E/AndroidRuntime(581): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-23 17:48:58.005: E/AndroidRuntime(581): at dalvik.system.NativeStart.main(Native Method)
08-23 17:48:58.005: E/AndroidRuntime(581): Caused by: java.lang.NullPointerException
08-23 17:48:58.005: E/AndroidRuntime(581): at com.organizer.medical.activities.PatientActivity.onActivityResult(PatientActivity.java:347)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityGroup.dispatchActivityResult(ActivityGroup.java:122)
08-23 17:48:58.005: E/AndroidRuntime(581): at android.app.ActivityThread.deliverResults(ActivityThread.java:2976)
08-23 17:48:58.005: E/AndroidRuntime(581): ... 11 more
這裏是我的調用活動代碼:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
int cat = Integer.parseInt(getIntent().getExtras().get("category").toString());
loadList(cat);
}
}
}
這是對我的OnCreate()對我的呼喚活動:
startActivityForResult(new Intent(this, CalledActivity.class), ADD_PATIENT);
這是我對「所謂的」活動代碼:
setResult(RESULT_OK, getIntent().putExtra("category", status.isChecked()?1:2));
finish();
順便說我叫活動setResult()
和finish()
是通過調用活動按鈕僅onClick
做...
我真的不知道如何正確使用startActivityForResult()
。請分享你的知識。
UPDATE
事實證明我是對訪問onActivityResult()的意圖是造成零異常錯誤和事實證明,「日期」 VAR對方法傳遞的是一個是作爲這樣的:
int cat = Integer.parseInt(**data**.getExtras().get("category").toString());
一旦檢查您的PatientActivity.java行號347,那麼您將得到NullPointer異常 – sankar
是的它的這部分:int cat = Integer.parseInt(getIntent()。getExtras()。get(「category」)。toString() );我不知道笏的錯誤我在哪裏得到NullPart ..我在設置結果或笏做錯了嗎?真的有知道的想法,沒有在互聯網上找到任何合法的爆炸.. – lemoncodes
你有調試到這個代碼行嗎?然後你可以檢查聲明的哪一部分是空的。 –