android - 配置更改后未在 viewpager 中调用 Fragment.onCreateView()

标签 android android-fragments android-viewpager

更改方向后,如果我在列表中选择一个项目,我的 viewpager Activity (列表/详细信息类型)将重新创建并崩溃。

我不想用所有细节来打扰您(存在空指针异常,因为在 onCreateView() 中引用的 TextView 为空)。 我的问题是:ViewPager 如何在不调用 onCreateView() 的情况下显示 2 个页面,每个页面都有一个 fragment ?

为什么在启动应用程序后还没有打开设备就可以正常工作?

我只有 2 页/fragment 。但是我看到调试器在重新创建此 Activity 时创建了 4 个 fragment 。您知道为什么以及在哪里记录了这一点吗?

有什么解决办法吗?在此先感谢您的帮助。我在这里迷路了,因为我自己不控制 fragment ,viewpager 控制。

==========

更新:请在下面找到其他请求的信息

public class  DetailFragment extends Fragment {
    TextView mDetailTV;
    // Retrieve the data to display from the parent activity
    private String getData() {
        ViewPagerActivity activity = (ViewPagerActivity)getActivity();
        return( activity.detailArray[activity.mPosition] );
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_detail_fragment, container, false);
        mDetailTV = (TextView)view.findViewById(R.id.detailTV);
        displayDetail(getData());   
        return view;
    }
    // Display data
    void displayDetail(String data) {       
        mDetailTV.setText(data);
    }

并且列表和详细信息 fragment 被实例化并像这样传递给寻呼机适配器:

mListFragment = new ListFragmentt();
mDetailFragment = new DetailFragment();
mPagerAdapter = new MFragmentPagerAdapter(getSupportFragmentManager(), mListFragment, mDetailFragment);

此外,列表/详细信息中的数据来自经典的 Skakespeare 示例,所以我怀疑我的三星 S4 内存不足。

最佳答案

我通过删除 FragmentActivity 父类(super class)的 onSaveInstanceState 调用解决了我的问题,如下所示:

protected void FragmentActivity(Bundle outState) {

但我仍然不明白 FragmentActivity 的父类(super class)中发生了什么。只是凭直觉猜测成功了。我不明白它背后的理论。如果有人可以尝试解释一下,那就太好了。

关于android - 配置更改后未在 viewpager 中调用 Fragment.onCreateView(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275848/

相关文章:

java - 无法解析 : com. google.android.material.material :1. 0

android - 获取 YouTube 视频的标题

android - 将 View 转换为位图而不在 Android 中显示?

php - 尝试初始化 JSONObject 时出现 Android ResponseListener JSON 错误

android.R.id.content 作为 Fragment 的容器

android - 想要在每个标记上显示设备 ID,从服务器接收到的设备 ID

android - 弹出最后一个 fragment 时处理返回键

带有页面指示器的 Android View 寻呼机

java - Android ViewPager 问题

android - Photoview 图像边界不改变