Cannot get extras from closed activity that adapter created in main activity - Attempt to invoke method getExtras() on a null object reference

57 views Asked by At

I'm trying to get some vars in MainActivity after finishing another activity started in Adapter for RecyclerView. MainActivity says that I'm trying to get them from a null object reference

MainActivity

public final static int REQUEST_CODE_C = 2;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case REQUEST_CODE_C:

            int course_id = data.getExtras().getInt("courseId");
            boolean completeStatus = data.getExtras().getBoolean("courseCompleteStatus");
            courseList.get(course_id).setCompleteStatus(completeStatus);
            fullCoursesList.clear();
            fullCoursesList.addAll(courseList);
            courseAdapter.notifyDataSetChanged();

            break;
    }
}

CourseAdapter

public void onClick(View v) {
    Intent intent = new Intent(context, CoursePage.class);

    ((Activity) context).startActivityForResult(intent, REQUEST_CODE_C);
}

CoursePage

public void onBackPressed() {
    super.onBackPressed();

    int courseId = getIntent().getIntExtra("courseId", -1);
    boolean completeStatus = getIntent().getBooleanExtra("completeStatus", false);

    Intent resultIntent = new Intent();
    resultIntent.putExtra("courseId",courseId);
            resultIntent.putExtra("courseCompleteStatus",completeStatus);

    int course_id1 = resultIntent.getExtras().getInt("courseId");
    boolean completeStatus1 = resultIntent.getExtras().getBoolean("courseCompleteStatus");

    setResult(CoursePage.RESULT_OK, resultIntent);
    finish();
}

I can check if extras were put properly in CoursePage by calling getExtras for the intent I put them in but after trying to get them in MainActivity I have this:

2022-07-22 13:37:36.758 17186-17186/com.bs03.zerothree E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bs03.zerothree, PID: 17186
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=0, data=null} to activity {com.bs03.zerothree/com.bs03.zerothree.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference
    at android.app.ActivityThread.deliverResults(Unknown Source:123)
    at android.app.ActivityThread.handleSendResult(Unknown Source:146)
    at android.app.servertransaction.ActivityResultItem.execute(Unknown Source:11)
    at android.app.servertransaction.ActivityTransactionItem.execute(Unknown Source:4)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(Unknown Source:77)
    at android.app.servertransaction.TransactionExecutor.execute(Unknown Source:73)
    at android.app.ActivityThread$H.handleMessage(Unknown Source:127)
    at android.os.Handler.dispatchMessage(Unknown Source:19)
    at android.os.Looper.loopOnce(Unknown Source:176)
    at android.os.Looper.loop(Unknown Source:76)
    at android.app.ActivityThread.main(Unknown Source:138)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(Unknown Source:11)
    at com.android.internal.os.ZygoteInit.main(Unknown Source:309)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference
    at com.bs03.zerothree.MainActivity.onActivityResult(MainActivity.java:277)
    at android.app.Activity.dispatchActivityResult(Unknown Source:11)
    at android.app.ActivityThread.deliverResults(Unknown Source:56)
    at android.app.ActivityThread.handleSendResult(Unknown Source:146) 
    at android.app.servertransaction.ActivityResultItem.execute(Unknown Source:11) 
    at android.app.servertransaction.ActivityTransactionItem.execute(Unknown Source:4) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(Unknown Source:77) 
    at android.app.servertransaction.TransactionExecutor.execute(Unknown Source:73) 
    at android.app.ActivityThread$H.handleMessage(Unknown Source:127) 
    at android.os.Handler.dispatchMessage(Unknown Source:19) 
    at android.os.Looper.loopOnce(Unknown Source:176) 
    at android.os.Looper.loop(Unknown Source:76) 
    at android.app.ActivityThread.main(Unknown Source:138) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(Unknown Source:11) 
    at com.android.internal.os.ZygoteInit.main(Unknown Source:309)
0

There are 0 answers