【问题标题】:change of value in string-array android by shared preferences通过共享首选项更改字符串数组android中的值
【发布时间】:2012-10-21 16:42:17
【问题描述】:

我想更改共享首选项中数组中的值。 我们可以在共享首选项中创建一个字符串数组并在我们的代码中使用它吗? 当我输入不同的值并希望用户根据用户需要更改值时,这怎么可能。我想在微调器中使用这些值。

【问题讨论】:

  • 您可以根据分隔符在共享首选项中添加多个值,您可以在插入值后使用任何特殊字符。

标签: android sharedpreferences android-preferences android-spinner user-preferences


【解决方案1】:

是的,您可以这样做。请参阅此处链接中 Egor 的评论Put and get String array from shared preferences

这正是你所需要的。

【讨论】:

    【解决方案2】:

    你不能在 sharedPrefence 中添加数组。你只能使用在this doc 中定义的数据类型。 如果您将大量数据放入 sharedPrefence 中,则所需的内存永远不会空闲。所以你可以使用应用程序类..当应用程序被强制停止时,应用程序类的内存将是空闲的..

    【讨论】:

      【解决方案3】:

      插入您的价值观,例如

      registrationPreferencesEditor.putInt("arraylength", a.length);
                  for(int i=0;i<a.length;i++)
                  {
                      registrationPreferencesEditor.putInt("a"+(i+1), a[i]);
                  }
                  registrationPreferencesEditor.commit();
      

      找回你的价值观

      int lengthOfArray = registrationPreferences.getInt("arraylength", 0);
                  int b[] = new int[lengthOfArray];
                  for(int i=0;i<lengthOfArray;i++)
                  {
                      b[i] = registrationPreferences.getInt("a"+(i+1), 0);
                      Log.e("b"+(i+1),""+b[i]);
                  }
      

      在此之前确保你有

      SharedPreferences registrationPreferences;
      SharedPreferences.Editor registrationPreferencesEditor;
      int a[]={1,2,3,4,5};
      registrationPreferences  = getSharedPreferences("registrationPreferences",
                  MODE_WORLD_READABLE);
            registrationPreferencesEditor= registrationPreferences
                  .edit();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多