I have a horizontal adapter which has Edit option. On selecting edit it opens up new activity. After editing it comes back to horizontal adapter. I am trying to update the model class in the adapter using onActivityResult. but trace is saying
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=78, result=-1, data=Intent { (has extras) }} to activity {com.codon.masterpiece/com.codon.masterpiece.ui.home.FullScreenSelf}: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at android.app.ActivityThread.deliverResults(ActivityThread.java:4335)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4379)
at android.app.ActivityThread.-wrap19(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1673)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.codon.masterpiece.ui.home.SelfHorizontalScroll.instantiateItem(SelfHorizontalScroll.java:109)
at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1158)
at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:669)
at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:631)
at androidx.viewpager.widget.ViewPager.dataSetChanged(ViewPager.java:1086)
at androidx.viewpager.widget.ViewPager$PagerObserver.onChanged(ViewPager.java:3097)
at androidx.viewpager.widget.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:291)
at com.codon.masterpiece.ui.home.FullScreenSelf.onActivityResult(FullScreenSelf.java:237)
at android.app.Activity.dispatchActivityResult(Activity.java:7355)
Here is my onActivityResult
if (requestCode == 78 && data != null) {
if (resultCode == RESULT_OK) {
int position = data.getIntExtra("position", 0);
Gson gson = new Gson();
String artworkData = data.getStringExtra("ArtworkData");
TypeToken<ArtworksData> token = new TypeToken<ArtworksData>() {
};
ArtworksData artworksData = gson.fromJson(artworkData, token.getType());
arrayList.set(position, artworksData);
selfHorizontalScroll.notifyDataSetChanged();
//Toast.makeText(this, "Got it", Toast.LENGTH_SHORT).show();
}
}
Redirecting to edit activity
if (item.getItemId() == R.id.edit_menu) {
//call edit art activity and pass task id
Intent intent = new Intent(ctx, EditArtwork.class);
//Intent newintent = ctx.getIntent();
// Bundle bundle = newintent.getExtras();
String taskID = feed.getId() + "", imageUrl = "";
imageUrl = feed.getImg1() + "";
intent.putExtra("artwork_id", taskID);
intent.putExtra("image_url", imageUrl);
intent.putExtra("position", ((FullScreenSelf) ctx).viewPager.getCurrentItem());
//intent.putExtra("wishtosell", feed.getWishtosell());
Activity origin_new = (Activity) ctx;
origin_new.startActivityForResult(intent, 78);
}
Method in edit activity
if ("False".equals(error)){
kProgressHUD.dismiss();
Toast.makeText(EditArtwork.this, "Artwork updated successfully", Toast.LENGTH_SHORT).show();
Log.d("Upload", jsonObject.toString());
Gson gson = new Gson();
JsonObject data = jsonObject.getAsJsonObject("data");
TypeToken<ArtworksData> token = new TypeToken<ArtworksData>() {
};
ArtworksData artworksData = gson.fromJson(data.toString(), token.getType());
//EditArtwork.this.onBackPressed();
Intent intent = new Intent();
intent.putExtra("ArtworkData", artworksData.toString());
setResult(RESULT_OK, intent);
finish();
}
its crashing here. at the instantiateItem method in the adapter.
final boolean[] hasLiked = {feed.getLiked()};
final boolean[] redirect = {feed.getBrSent()};