Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在用户关闭应用程序后保留用户选择?安卓_Java_Android_Xml - Fatal编程技术网

Java 如何在用户关闭应用程序后保留用户选择?安卓

Java 如何在用户关闭应用程序后保留用户选择?安卓,java,android,xml,Java,Android,Xml,因此,此时用户将选择颜色、形状和时间。当应用程序首次启动时,每个应用程序都有一个默认值。我想做的是,即使在用户在后台运行应用程序时关闭应用程序,也要保留用户对这三个选项的选择 如果你需要我帮你发帖的话,就请你离开。谢谢 在写出问题所在后,不是没有保存,而是保存了选择,但没有正确显示。即通过边框或下拉菜单返回其默认值,而不是用户选择 因此,这些值正在被保存(我的坏),但应用程序会覆盖这些保存,并且不会使用边框或下拉菜单返回其默认值 circularImageView = (CircularIma

因此,此时用户将选择颜色、形状和时间。当应用程序首次启动时,每个应用程序都有一个默认值。我想做的是,即使在用户在后台运行应用程序时关闭应用程序,也要保留用户对这三个选项的选择

如果你需要我帮你发帖的话,就请你离开。谢谢


在写出问题所在后,不是没有保存,而是保存了选择,但没有正确显示。即通过边框或下拉菜单返回其默认值,而不是用户选择

因此,这些值正在被保存(我的坏),但应用程序会覆盖这些保存,并且不会使用边框或下拉菜单返回其默认值

 circularImageView = (CircularImageView)findViewById(R.id.activity_main_silver_color_button);
    circularImageView.setBorderColor(getResources().getColor(R.color.unselected_border));

circularImageView = (CircularImageView)findViewById(v.getId());
    circularImageView.setBorderColor(getResources().getColor(R.color.selected_border));
这些颜色彼此独立工作,但当选择边框时,如果选择了另一种颜色,则它将成为未选择的边框。但如果“选定边界”状态从未保存,会发生什么情况

public static void saveLockScreenDuration(Context context, int duration){
    getStoredPreferences(context).edit().putInt(SELECTED_DURATION, duration).apply();

public static int getLockScreenDuration(Context context){
    return getStoredPreferences(context)
            .getInt(SELECTED_DURATION, DEFAULT_DURATION);
}

这是存储所有首选项的位置。默认持续时间和所选持续时间在一个名为常量的类中。

如果您谈论的是活动还原数据。 那么看看这里。

选择后,您可以将所选值存储在共享首选项中。再次启动时,您可以检查这些值是否为null。并相应地显示。阅读如何使用共享首选项。

如果我错了,请纠正我。我认为您可以使用
PreferenceManager.getDefaultSharedReferences(上下文)


在您的所有活动和服务类中共享。如果你设置了一个可访问性服务,在应用程序处于后台并使用DefaultSharedReferences存储时获取事件,我认为它将适用于你的情况

因此,基本上您希望在每次更新时保存用户的选择?请尝试在SharedReference中保存用户的选择。然后在创建视图时,加载保存的SharedReference。参考这个答案是的,这就是我想要的for@AngelKoh我让他们进入SharedReference,但我的默认值是静态的,我不知道如何更改它,这样即使应用程序在后台也会更改。知道如果这些值在public void方法中,我该怎么办吗?它确实保存了这些值,但一旦应用程序运行了他们不会保存到后台,我不知道为什么,如果错了,请纠正我,一旦应用程序进入后台,用户将如何更改其颜色偏好。因为它对用户不可见。那么,当应用程序处于后台时,您希望保存什么?在写出问题所在后,不是没有保存,而是保存了选择,但没有正确显示。例如,通过边框或下拉菜单返回其默认值,而不是用户选择。请发布您的保存数据并重新使用的活动代码。我已将其添加到主帖子中,该代码保存和更改了手帕,但我犯了一个错误,我说的是,保存一切都很好,但如果这有意义的话,所选值周围的边界就没有意义了。
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);