我写了一个带有一些标签的 FragmentActivity。当我使用 startActivityForResult 调用其他活动(用于设置用户首选项)时(如果它在 FragmentActivity 或 ListFragment 中没有区别),当我启动此首选项活动时调用 onActivityResult 方法,但在我完成时不会调用它,如我希望它(如果它在 FragmentActivity 或 ListFragment 中也没有区别)。在我完成偏好活动后,这个方法根本不会被调用。
我的问题是我想在完成首选项活动后刷新当前选项卡(并设置上次使用的选项卡 ID),并且我希望能够在 onActivityResult 方法中执行此操作。
这是创建偏好活动的类:
public abstract class ListFragmentBase<I> extends ListFragment implements
LoaderCallbacks<List<I>> {
这是将我转发到此类中的偏好活动的方法:
protected void forwardToPreferences(int currentTab){
Intent intent = new Intent(getActivity(), GlobalPreferencesActivity.class);
getActivity().startActivityForResult(intent, 10);
}
这是在调用上述方法后调用的方法,但不是在我完成调用的活动后调用的方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
这是偏好活动:
public class GlobalPreferencesActivity extends Activity {
在该类中,您会看到我如何调用完成方法:
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();
}
});