【发布时间】:2015-07-20 08:48:12
【问题描述】:
我有一个主片段,里面有一个 viewpager。这个 viewpager 有 2 个页面(列表片段)。当我开始活动时,会显示主要片段,并且我还显示第一个分页片段。这个分页片段使用AsyncTask 显示来自数据库的数据。
在我的主要片段中:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
onPageSelected(0);
}
@Override
public void onPageSelected(int position) {
Fragment fragment = (Fragment) pagerAdapter.instantiateItem(viewPager, position);
if (fragment instanceof IPagedFragment) {
((IPagedFragment) fragment).onShown(getActivity());
}
}
界面是:
public interface IPagedFragment {
void onShown(FragmentActivity activity);
}
我遇到的第一个问题是我必须将活动作为参数传递,因为当onShown 被调用时,活动仍然为空。
此外,分页片段使用类似于 LoginActivity 示例的进度条逻辑。我也得到以下异常:
IllegalStateException:片段 PagedFragment1{4201f758} 未附加到 Activity 在 android.support.v4.app.Fragment.getResources(Fragment.java:620)
那么,一旦分页片段对 UI 完全可用,开始从 db 检索数据的正确阶段是什么?
【问题讨论】:
标签: android android-fragments android-activity