i wrote a FragmentActivity with some tabs. when i call an additional activity (which i use for setting user-preferences) with startActivityForResult (no differences if its in FragmentActivity or in ListFragment) the method onActivityResult gets called when i starts this preference-activity, but not when i finish it, as i would expect it (again no differences if its in FragmentActivity or in ListFragment). after i finish the preference-activity this method does not get called at all.
my problem is that i want to refresh my current tab (and set the last used tab id) after i finished the preference activity and i hoped to be able to do this in the onActivityResult method.
this is the class creating the preference-activity:
public abstract class ListFragmentBase<I> extends ListFragment implements
LoaderCallbacks<List<I>> {
this is the method forwarding me to the preference activity inside this class:
protected void forwardToPreferences(int currentTab){
Intent intent = new Intent(getActivity(), GlobalPreferencesActivity.class);
getActivity().startActivityForResult(intent, 10);
}
this is the method that gets called after calling the method above but not after i finished the called activity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
this is the preference-activity:
public class GlobalPreferencesActivity extends Activity {
and inside that class you see how i call the finish method:
TextView confirmSettings = (TextView) view.findViewById(R.id.confirm_settings);
confirmSettings.setTextSize(PreferenceHelper.getSizeHeader(getApplicationContext()));
confirmSettings.findViewById(R.id.confirm_settings).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(BaseFragmentActivity.lastActivity != null){
BaseFragmentActivity.lastActivity.onRefreshData();
}
ComponentName callingActivity = getCallingActivity();
GlobalPreferencesActivity.this.finish();
}
});