Onactivityresult Is Not Working In Tabactivitygroup?
Solution 1:
I have solved my issue.Please see my answer below,
I finally figured out/remembered that the issue is because Android will only allow a nested layer of sub-activities...ie sub-activities can't nest sub-activitites. To solve this:
call getParent().startActivityForResult()
from your sub-activity
your parent (the activitygroup) will be able to handle the onActivityResult. So I created a subclass of ActivityGroup and handled this onActivityResult.
You can re-route that result back to the sub-activity if you need to. Just get the current activity by getLocalActivityManager().getCurrentActivity()
. My sub-activities inherit from a custom activity so I added a handleActivityResult(requestCode, resultCode, data)
in that subclass for the ActivityGroup to call.
Answer for the above question with exact code
ActivityGroup->SubActivities->onActivityResult->ActivityGroup(onActivityResult)->subActivity(onActivityResult)
This is the ActivityGroup Class in which you have to define onActivityResult for all sub-activities,
@OverridepublicvoidonActivityResult(int requestCode,int resultCode, Intent data)
{
switch(requestCode)
{
case CAMERA_RECEIPTREQUEST:
if(resultCode == Activity.RESULT_OK)
{
ExpensesActivityactivity= (ExpensesActivity) getLocalActivityManager().getCurrentActivity();
activity.onActivityResult(requestCode, resultCode, data);
}
break;
case CAMERA_CONFIRMRECEIPT:
ExpensesActivityactivity1= (ExpensesActivity) getLocalActivityManager().getCurrentActivity();
activity1.onActivityResult(requestCode, resultCode, data);
}
}
In Sub Activity, you have to set the view as below
View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.enter_time, null);
this.setContentView(viewToLoad);
Then in Sub- Activity onActivityResulty()
@OverridepublicvoidonActivityResult(int requestCode,int resultCode, Intent data)
{
//Some Code
}
Post a Comment for "Onactivityresult Is Not Working In Tabactivitygroup?"