0

I have implemented fragmetation. I referred this. My object loses its values..

My code

public ImageDetailsFragment(Data photo) {
    this.photo = photo;     
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    setRetainInstance(true);

    if (mContext == null) {
        mContext = getActivity();
    }

    gv = (LinearLayout) inflater.inflate(R.layout.image_details, null);

    initAd(gv, R.id.adLayout);
    initTab(gv);

    return gv;
}


private void initTab(LinearLayout gv) {

    tvTitleText = (TextView) gv.findViewById(R.id.tvTitleText);
    tvTitleText.setTypeface(Utils.getBold(getActivity()));
    tvTitleText.setText(photo.name);
}


private void shareInstagram() {
    try {
        File file = new File(Environment.getExternalStorageDirectory()
                + "/tmp.jpg");

        if (file.exists() && file.isFile()) {
            Intent shareIntent = new Intent(Intent.ACTION_SEND);
                    shareIntent.setType("image/*");
                    shareIntent.putExtra(Intent.EXTRA_TEXT, "" + photo.name);
                    shareIntent.setPackage("com.instagram.android");
            shareIntent.putExtra(Intent.EXTRA_STREAM,
                    Uri.parse("file://" + file.getAbsolutePath()));
            startActivity(shareIntent);
        }
    } catch (Exception e) {
        e.printStackTrace();            
    }

}

My above code works fine. But when I share my image on instagram, after sharing when came back it crashes with null pointer exception.

My logcat

05-01 12:38:27.230: E/AndroidRuntime(7505): Caused by: java.lang.NullPointerException
05-01 12:38:27.230: E/AndroidRuntime(7505):     at weetech.alliswall.fragments.ImageDetailsFragment.initTab(ImageDetailsFragment.java:224)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at weetech.alliswall.fragments.ImageDetailsFragment.onCreateView(ImageDetailsFragment.java:201)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1861)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1167)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.app.Activity.performStart(Activity.java:5216)
05-01 12:38:27.230: E/AndroidRuntime(7505):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2073)
05-01 12:38:27.230: E/AndroidRuntime(7505):     ... 11 more

I think photo object is destroyed or something else.. How to retain? Also other solution will be welcomed.

Community
  • 1
  • 1
Bhavesh Hirpara
  • 22,255
  • 15
  • 63
  • 104

0 Answers0