我需要设置全局变量的值,并在重新启动应用程序时保存它

时间:2017-09-06 06:29:45

标签: java android

所以我在应用程序中开发一个功能,我将布尔设置为true,这导致一些操作正在完成。现在,按钮的onClick将执行一些相关任务,并将布尔值设置为false。这很好,但效果很好,但一旦更改为false,我想在重新启动应用时将其指定为false而不是true。我试着找了一会儿没有运气。将不胜感激。

我只学习Java和Android应用程序开发2个月,现在我正在制作程序,所以请耐心等待我。也许某种使用布尔而不是布尔值?我没有走得太远。

public class Constants {
  public static boolean VARIABLE = true;
}

public Fragment {
  mSharedPreferencesManager.setFeatureUpdateCheck(Constants.VARIABLE);

  if(mSharedPreferencesManager.getFeatureUpdateCheck())
    chatUpdateNotif.setVisibility(View.VISIBLE);                   
  else
    chatUpdateNotif.setVisibility(View.GONE);
@OnClick (R.id.chat_notification_close_button)

public void onClickHideNotification() {
  chatUpdateNotif.setVisibility(View.GONE);
  Constants.VARIABLE = false;

3 个答案:

答案 0 :(得分:0)

使用共享首选项在更改时保存布尔值,如下所示:

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        "DataSaved", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("VARIABLE", VARIABLE);
editor.commit();

然后在Constant写下这个:

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        "DataSaved", Context.MODE_PRIVATE);
VARIABLE = sharedPref.getBoolean("VARIABLE", false);

答案 1 :(得分:0)

private String MY_PREFS_NAME = "sharedPref";

这设置布尔值:

  SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
    editor.putBoolean("Value", false);
    editor.commit();

这得到布尔值:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
TextView textview = (TextView)findViewById(R.id.textview);
textview.setText(String.valueOf(prefs.getBoolean("Value", true)));

此textview将打印出false,因为已设置布尔值。如果未设置布尔值,则为true(默认值)。

答案 2 :(得分:0)

您的问题非常不清楚。如果您尝试在关闭应用程序时保存值并重新启动值,请尝试使用共享首选项。

1.点击按钮

时保存值
SharedPreferences sharedPref = getSharedPreferences("YOUR PREF NAME", Context.MODE_PRIVATE);
sharedPref.edit().putBoolean("VALUE NAME", true).apply();

2.从restring app的首选项中恢复值

sharedPref.getBoolean("VALUE NAME", null);

修改:如果您没有使用活动,请使用上下文来使用偏好

SharedPreferences sharedPref = context.getSharedPreferences("YOUR PREF NAME", Context.MODE_PRIVATE);