保存和还原片段状态 [英] Save and restore fragment state

查看:53
本文介绍了保存和还原片段状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一系列片段.我使用上一个"和下一个"按钮在此片段中进行导航.在此片段中有许多编辑文本和单选按钮.

I have a series of fragments. And I use "previous" and "next" buttons for navigation within this fragments. There are many edit texts and radio buttons in this fragments.

我想通过单击上一个"按钮在加载上一个片段时保存和恢复这些编辑文本和单选按钮中的用户输入.

快照:
片段1

片段2

片段1:

public class Register_Page6 extends Fragment {
public Register_Page6() {}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_register_page6, container, false);

    Button Previous = (Button) view.findViewById(R.id.Previous6);
    Button Next = (Button) view.findViewById(R.id.Next6);
    Next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            android.support.v4.app.FragmentTransaction FT;
            FT = getActivity().getSupportFragmentManager().beginTransaction();
            FT.replace(R.id.main_container,new Register_Page7());
            FT.commit();
        }
    });

    Previous.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            android.support.v4.app.FragmentTransaction FT;
            FT = getActivity().getSupportFragmentManager().beginTransaction();
            FT.replace(R.id.main_container,new Register_Page5());
            FT.commit();
        }
    });
    return view;
}
}

片段2:

public class Register_Page7 extends Fragment {
public Register_Page7(){

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_register_page7, container, false);

    Button Previous = (Button) view.findViewById(R.id.Previous7);
    Button Regiter = (Button) view.findViewById(R.id.Submit);
    Regiter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    android.support.v4.app.FragmentTransaction FT;
            FT = getActivity().getSupportFragmentManager().beginTransaction();
            FT.replace(R.id.main_container,new Register_Page6());
            FT.commit();
        }
    });

    Previous.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            android.support.v4.app.FragmentTransaction FT;
            FT = getActivity().getSupportFragmentManager().beginTransaction();
            FT.replace(R.id.main_container,new Register_Page6());
            FT.commit();
        }
    });
    return view;
}
}

推荐答案

在所有片段中使用 addToBackStack("YOUTAG")将片段添加到堆栈中:

Add Your fragment to back stack using addToBackStack("YOUTAG") like this in all your fragments :

android.support.v4.app.FragmentTransaction FT;
FT = getActivity().getSupportFragmentManager().beginTransaction();
FT.replace(R.id.main_container, new Register_Page6()).addToBackStack("FragmentName");
FT.commit();

这篇关于保存和还原片段状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆