Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android |如何在SharedReferences中添加整数并防止其返回零_Android_Android Layout_Sharedpreferences - Fatal编程技术网

Android |如何在SharedReferences中添加整数并防止其返回零

Android |如何在SharedReferences中添加整数并防止其返回零,android,android-layout,sharedpreferences,Android,Android Layout,Sharedpreferences,我想添加一个整数并将其存储到SharedReferences。首先,我将其实例化为零,然后,当单击按钮时,我想向其添加1并将其保存在SharedReferences上。但是,当由于实例化步骤而重新创建活动时,它会返回到零。我应该怎么做?无需初始化零,请尝试全局变量 int value; 在onCreate中也是这样 value=PreferenceManager.getDefaultSharedPreferences(this).getInt("value", 0); 像这样点击按钮 val

我想添加一个整数并将其存储到SharedReferences。首先,我将其实例化为零,然后,当单击按钮时,我想向其添加1并将其保存在SharedReferences上。但是,当由于实例化步骤而重新创建活动时,它会返回到零。我应该怎么做?

无需初始化零,请尝试全局变量

int value;
在onCreate中也是这样

value=PreferenceManager.getDefaultSharedPreferences(this).getInt("value", 0);
像这样点击按钮

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

你可以像下面这样写一些类。。4.我刚写完,不知道行不行,但你会知道的

 public class Value {
        public static final String KEY_VALUE_ID = "value";
        private SharedPreferences sharedPrefs;
        private Editor prefsEditor;

        public Value(Context context) {
            this.sharedPrefs = context.getSharedPreferences("APP", 0);
            this.prefsEditor = sharedPrefs.edit();
        }

        public int getValue(){
            return sharedPrefs.getInt(KEY_VALUE_ID, 0);
        }

        public void setValue(){
            prefsEditor.putInt( KEY_VALUE_ID, getValue() + 1 );
            prefsEditor.commit();
        }    

    }
以及如何在课堂上使用它:

在按钮上单击“调用此方法”:

new Value(this).setValue();

请发布你的代码。糟糕的是,由于绝望,我删除了我代码的那部分。对不起,我的错。我试试这个。我会告诉你它是否成功。等等,在我尝试之前。这将在创建时将名为值的整数设置为零。然后,单击时,它将向值中添加1,并将其放入“value”键中。在重新开始时,它将再次设置为零,对吗?哦,我明白了。“重新归零”将不会保存在SharedReferences中!它只会将值设置为零。但最后插入的值仍有待增加。是吗?但是,在我递增之前,我如何才能从SharedReferences获取输入值的值?