androidandroid-activityactivitygroup

how to call startactivityforresult from one activity to another within a activity group inside a tabwidget


I have a tab activity, and inside one tab I have activitygroup. Initially activity A is shown and from there I want to call activity B using startactivityforresult. How to achieve this?

in my activity A, I am doing this...

        Intent i = new Intent(Entry.this, Child.class);

        // Create the view using FirstGroup's LocalActivityManager  
        View view = GroupActivity.group.getLocalActivityManager()  
        .startActivity("child", i  
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
        .getDecorView();  

        // Again, replace the view  
        GroupActivity.group.replaceView(view);

This though takes me to activity B, there is no way for me to return to activity A from there.


Solution

  • Change startActivity to:

    .startActivityForResult(i, .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

    then add this method to ActivityA:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // See which child activity is calling us back.
            switch (resultCode) {
               case RESULT_OK:
               {
                   //processing code goes here
               }
               default:
                    break;
            }
    } 
    

    and then when finish() is called on Activity B you should hit the 'OnActivityResult' method. You can also send an intent back to main activity by calling:

    setResult(Activity.Result_OK, intent);
    

    on Activity B.