0

Hi I am developing android application in which I am using actionbar Sherlock. my application contains one main activity inside that 3 fragments with 3 tabs. My first tab showing list view if I click on list item it opens new detail activity. So what i want when I close detail activity I want to automatically switch on another tab.

So my code looks like

public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        Intent intent = new Intent(getActivity(), CardDetails1.class);
        startActivityForResult(intent, 7);
    }

And On activity result I am doing:

@Override @SuppressLint("NewApi")
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == 7)
        {   
            getActivity().getActionBar().setSelectedNavigationItem(2);
        }
    }

BUt when I click on back it gives me following error

08-08 10:36:58.149: E/AndroidRuntime(7351): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=131079, result=0, data=null} to activity {com.example.sample/com.ecample.sample.LeftAndRightActivity}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

08-08 10:36:58.149: E/AndroidRuntime(7351):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3398)
08-08 10:36:58.149: E/AndroidRuntime(7351):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3448)
08-08 10:36:58.149: E/AndroidRuntime(7351):     at android.app.ActivityThread.access$1100(ActivityThread.java:139)
08-08 10:36:58.149: E/AndroidRuntime(7351):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
08-08 10:36:58.149: E/AndroidRuntime(7351):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-08 10:36:58.149: E/AndroidRuntime(7351):     at android.os.Looper.loop(Looper.java:156)

Any one having solution for this. I need help. Thank you.

nilkash
  • 7,408
  • 32
  • 99
  • 176

1 Answers1

0

Use: transaction.commitAllowingStateLoss();

when adding or performing the FragmentTransaction that was causing the Exception.

Pramod Ravikant
  • 1,039
  • 2
  • 11
  • 28