gpt4 book ai didi

android - fragment 中的静态字段

转载 作者:行者123 更新时间:2023-11-29 01:37:11 25 4
gpt4 key购买 nike

我有一个 FragmentActivity,我从中调用一个 Fragment,其中有一个静态字段和 ExpandableListView。

按下存在或后退按钮后,我重新打开应用程序,静态字段的值仍然存在(ExpandableListView 的形状也相同)。这是我所期望的。不幸的是,一段时间后(但并非总是如此),当我返回应用程序时,静态字段具有其默认值而不是最新值,我认为这意味着 Fragment 类再次被实例化。但是 ExpandableListView 与最初离开应用程序之前一样。

为什么会发生这种行为?

顺便说一下,我这样做是因为我想记住在 ExpandableListView 中扩展了哪一组项目。

这是调用 fragment 的寻呼机适配器。

public class CollectionPagerAdapter  extends FragmentStatePagerAdapter {

private Local local;
private Online online;

public CollectionPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
local = new Local();
return local;
case 1:
online = new Online();
return online;
}
return null;
}

@Override
public int getCount() {
return 2;
}

public void updateLocal(String update) {
local.updateLocal(update);
}

最佳答案

我的猜测是 FragmentStatePagerAdapter 在删除它们之前将保存的信息保存在内存中一段时间​​,因此当数据重新初始化后较长时间返回时,您将获得默认值。如果您想存储数据,您可以使用共享首选项(对于较小的数据)。

共享偏好 - http://developer.android.com/guide/topics/data/data-storage.html#pref

SQL 数据库 - https://developer.android.com/guide/topics/data/data-storage.html#db

关于android - fragment 中的静态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com