gpt4 book ai didi

android - 无法在 Android 中使用 SharedPreferences 增加计数器

转载 作者:行者123 更新时间:2023-11-29 14:32:01 25 4
gpt4 key购买 nike

我只是 Android 的新手,我有一个场景,用户可以使用相机拍照并将照片存储在 SDCard 中。我需要用动态名称保存照片,即我希望图像名称为图像 1、图像 2 等等。我最初将计数器值设置为 1,因此第一张图像将存储为图像 1,下次计数器将增加该值并再次存储。

问题:

我的问题是我无法在每次关闭并重新打开应用程序时增加计数器值。我已经尝试了很多,它再次将计数器设置回 1。

代码:

int count;
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
int defaultValue = getPreferences(MODE_PRIVATE).getInt("count_key",count);
defaultValue = count;
editor.putInt("count_value",defaultValue).commit();
if(count == 1)
{
count = 1;
getPreferences(MODE_PRIVATE).edit().putInt("count_key",count).commit();

}
else
{
++count;
getPreferences(MODE_PRIVATE).edit().putInt("count_key",count).commit();
count = getPreferences(MODE_PRIVATE).getInt("count_key",count);
System.out.println("The count value is " + count);
}

在执行时,它每次都将计数值返回为 1,并且似乎没有增加计数值。我第一次打开它应该是 1,然后是 2,依此类推。我的逻辑有问题还是 SharedPrefs 出了问题。我在 StackOverFlow 上冲浪了很多,但似乎没有遇到我需要的风格。任何帮助将不胜感激。提前致谢。

最佳答案

++count;

将它放在 if 循环之前,而不是在 else 循环中。或使用以下代码增加计数

int count = 0;
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
int defaultValue = getPreferences(MODE_PRIVATE).getInt("count_key",count);
++defaultValue;
getPreferences(MODE_PRIVATE).edit().putInt("count_key",defaultValue).commit();
count = getPreferences(MODE_PRIVATE).getInt("count_key",count);
System.out.println("The count value is " + count);

关于android - 无法在 Android 中使用 SharedPreferences 增加计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com