【问题标题】:Shared Preferences initial declaration共享首选项初始声明
【发布时间】:2014-04-28 06:06:04
【问题描述】:

我是安卓新手。我想初始化一个共享偏好。 我只需要一个自动增量ID。我搜索了许多共同的偏好,但我无法理解他们的解释。

我只是想要一个简单的数字初始化。

例如,

key = RemID and initial value of that key is 0.

我只想在第一次初始化它,而不是在每次启动我的应用程序时进行初始化

我将使用该值并递增并将其存储回来。

请分享一些想法。

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

    我建议使用SharedPreferencesget* 方法的默认值参数。

    例如:

    SharedPreferences prefs = context.getSharedPreferences("counters",
                                                           Context.MODE_PRIVATE);
    
    // increment a counter
    int counter = prefs.getInt("counter", 0); // Using '0' for the default value
    prefs.edit().putInt("counter", counter+1).apply();
    

    【讨论】:

    • orip 先生,我应该把第一行代码放在哪里?在什么活动中?是第一行。已经初始化了“计数器”?
    • 第一行是如何创建 SharedPreferences 实例。例如,您可以将其设置为活动的onCreate 中的一个字段。如果它不存在,它会创建一个名为“counters”的共享首选项文件 - 如果存在,它会加载首选项。
    • 好的,先生。我会试试这个。多谢。马上回来。如果这件事成功了。我给你加分!
    【解决方案2】:

    试试这个

    int sharedPrefValue;
    

    然后在onCreate方法中,

    sharedPrefValue=PreferenceManager.getDefaultSharedPreferences(this).getInt("sharedPrefValue", 0);
    

    然后,

    sharedPrefValue++;
    

    PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("sharedPrefValue", sharedPrefValue).commit();

    【讨论】:

      【解决方案3】:

      您好,以下内容可能对您有所帮助

      private void setShared() {
              SharedPreferences records = getSharedPreferences(
                      LoginActivity.USER_RECORD, 0);
              SharedPreferences.Editor prefEditor = records.edit();
      
              int count = nImageUrl.size();
      
              for (int i = 0; i < count; i++) {
      
                  prefEditor.putInt(ID + savedPhotosCount, Singleton.instanse.getCustomerID(mCustomerIndex));
                  prefEditor.putString(FILE_PATH + savedPhotosCount, nImageUrl.get(i));
                  prefEditor.putString(DESCRIPTION + savedPhotosCount, captionText.get(i));
                  savedPhotosCount++;
                  prefEditor.putInt(SAVED_PHOTOS_COUNT, savedPhotosCount);
              }
              prefEditor.commit();
          }
      

      首先声明变量

        int savedPhotosCount = 0;
      

      每次增加 id。

      【讨论】:

      • 嗨,ramesh 先生,您能解释一下第一行吗?最初的声明在哪里?
      • oncreate 函数之前。如下图 int savedPhotosCount = 0; @Override public void onCreate(Bundle savedInstanceState) { }
      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 2023-02-13
      • 2020-09-15
      • 2022-01-23
      • 2021-02-16
      • 2022-11-25
      • 2012-09-08
      • 1970-01-01
      相关资源
      最近更新 更多