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

标签 android sharedpreferences counter

我只是 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/

相关文章:

java - 从广播接收器 android 调用 Activity 警报框

android - Expo 应用程序可以在 ios 和模拟器上运行,但不能在 Android 设备上运行

android - 检查 CountDownTimer 是否正在运行

android - 如何在 Flutter SharedPreferences 中访问 iOS UserDefaults 存储的数据

Android 共享首选项分配不会在模拟器 session 之间持续存在

mysql - 创建一个列,计算同一个表中某个值在另一列上出现的次数 - MySQL

android - Environment.getExternalStorageDirectory() 已弃用。如何新建文件夹?

Android SharePrefrences 问题

java - Java http 服务器上的访问者计数器

css - 手动增加 CSS 计数器