android – 如何以及在何处使用片段内的setInitialSavedState和saveFragmentInstanceState

android – 如何以及在何处使用片段内的setInitialSavedState和saveFragmentInstanceState,第1张

概述我正在尝试创建一个片段,在它显示回来之后保留其状态. 为此,我尝试在onPause()&中使用getFragmentManager().saveFragmentInstanceState().然后在onCreateView()中调用setInitialSavedState(). 我面临的问题是我不知道如何准确地使用它们以及何时调用它们. 这两个函数都采用SavedState类型的参数,我不知道如何 我正在尝试创建一个片段,在它显示回来之后保留其状态.

为此,我尝试在onPause()&中使用getFragmentManager().saveFragmentInstanceState().然后在onCreateVIEw()中调用setinitialSavedState().

我面临的问题是我不知道如何准确地使用它们以及何时调用它们.

这两个函数都采用SavedState类型的参数,我不知道如何使用它.

码:

public class AudioContainerFragmentClass extends Fragment implements        OnClickListener {    final String TAG = "AudioContainerFragmentClass";    private button bSetname;    private TextVIEw tvname;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @OverrIDe    public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) {        VIEw vIEw = null;        try {            Log.e(TAG,"onCreateVIEw()");            vIEw = inflater.inflate(R.layout.audio_fragment_container,null);            bSetname = (button) vIEw.findVIEwByID(R.ID.bSetname);            tvname = (TextVIEw) vIEw.findVIEwByID(R.ID.tvname);            bSetname.setonClickListener(this);            if(savedInstanceState != null){                setinitialSavedState(/* WHICH SavedState OBJECT TO PASS */);            }            Log.e(TAG,"onCreate()");        } catch (Exception e) {            Log.e(TAG,"onCreateVIEw(): " + e.toString());        }        return vIEw;    }    /*    @OverrIDe    public voID onSaveInstanceState(Bundle outState) {        Log.e(TAG,"onSaveInstanceState()");        super.onSaveInstanceState(outState);    }    */    @OverrIDe    public voID onClick(VIEw v) {        tvname.setText("sometext");    }    @OverrIDe    public voID onPause() {        super.onPause();        getFragmentManager().saveFragmentInstanceState( /* WHAT TO ADD HERE */);    }}
解决方法 只是自己调查一下,并认为我会记录我发现的东西.

在将片段附加到活动后,无法调用setinitialSavedState(),如AndroID源代码around line 491中所述.

setinitialSavedState()旨在在代码中实例化片段后立即使用.例如:

AudioContainerFragmentClass newFrag = new AudioContainerFragmentClass();newFrag.setinitialSavedstate(savedStateObject);
总结

以上是内存溢出为你收集整理的android – 如何以及在何处使用片段内的setInitialSavedState和saveFragmentInstanceState全部内容,希望文章能够帮你解决android – 如何以及在何处使用片段内的setInitialSavedState和saveFragmentInstanceState所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存