2017-08-14 54 views
-1

所以目前用户将选择颜色,形状和时间。当应用第一次启动时,每个应用都有一个默认值。我想要发生的事情是,即使在后台运行应用程序后关闭应用程序,也要让用户选择所有这3种应用程序。如何保持用户选择,即使他们关闭应用程序后? Android

如果你需要我张贴任何帮助请走。谢谢。

写出了什么问题后,并不是说他们没有被保存它是一个事实,即选择被保存,但不能正确显示。 I.E通过边框或下拉菜单返回到默认值而不是用户选择。

所以值被保存(我的坏),但应用程序覆盖这些保存和不使用边界或人类的下拉菜单返回到它的默认值。

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)); 

这些工作相互独立,但被选择的边界时,如果选择了另一种颜色则变得未选择的边界的。但是如果“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); 
} 

这是存储所有预置的地方。 DEFAULT_DURATION和SELECTED_DURATION在一个名为常量的类中。

+0

因此,基本上每次更新时都要保存用户的选择? –

+0

尝试将用户的选择保存在SharedPreference中。那么在创建视图时,加载已保存的SharedPreference。参考这个答案https://stackoverflow.com/a/3624358/908821 –

+0

是的,这基本上是我在找什么 –

回答

0

在选择时,你可以在共​​享偏好存储中选择的值。再次启动时,您可以检查这些值是否为空。并据此显示。阅读如何使用共享首选项here

+0

它确实保存了值,但一旦应用程序进入后台,它们不会保存,我不知道为什么, –

+0

如果错误,纠正我,一旦应用程序进入后台,用户将如何更改其颜色首选项。因为它不会被用户看到。那么当应用程序在后台时你想要保存什么? –

+0

写完问题后,并不是说他们没有被保存,而是选择被保存但没有正确显示。 I.E通过边框或下拉菜单返回到默认值而不是用户选择。 –

0

纠正我,如果我错了。我想你可以使用PreferenceManager.getDefaultSharedPreferences(Context context)

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
这是您所有的活动和服务类所共享

。如果你设置一个无障碍服务来获取应用程序在后台的事件,并使用defaultsharedprefrences来存储,我认为它适用于你的情况。

+0

谢谢,但是我在说什么的时候都犯了一个错误,它们都能很好地保存,但是如果这样做有意义的话,那么所选值的边界就不是这样了。 –

相关问题