Java 使用SharedReferences保存int变量(不工作)

Java 使用SharedReferences保存int变量(不工作),java,android,onclick,int,sharedpreferences,Java,Android,Onclick,Int,Sharedpreferences,我创建了一个应用程序,点击按钮可以将其整数值从0增加1。(它显示在文本视图中) 我试图做的是保存int变量,这样重新启动应用程序后修改后的值将保持不变。 我试图使用这些方法,将它们放入onClick(increase)方法以及onCreate中,但似乎没有任何效果: SharedPreferences mPrefs = getSharedPreferences("label", 0); Integer var = mPrefs.getInt("var", variable); SharedPr

我创建了一个应用程序,点击按钮可以将其整数值从0增加1。(它显示在文本视图中) 我试图做的是保存int变量,这样重新启动应用程序后修改后的值将保持不变。 我试图使用这些方法,将它们放入onClick(increase)方法以及onCreate中,但似乎没有任何效果:

SharedPreferences mPrefs = getSharedPreferences("label", 0);
Integer var = mPrefs.getInt("var", variable);

SharedPreferences.Editor mEditor = mPrefs.edit();
mEditor.putInt("tag", variable).commit();
    SharedPreferences myPreference =getSharedPreferences("sharedpref_name",   MODE_PRIVATE);

    // Writing data to SharedPreferences
     Editor editor = myPreference.edit();
     editor.putString("var_name", "variable_value");
     editor.commit();                
还有:

SharedPreferences sharedPref= getSharedPreferences("mypref", 0);
SharedPreferences.Editor editor= sharedPref.edit();
editor.putInt("name", variable);
editor.commit();

getSharedPreferences("name", variable);
    SharedPreferences myPreference =getSharedPreferences("sharedpref_name",   MODE_PRIVATE);

    // Writing data to SharedPreferences
     Editor editor = myPreference.edit();
     editor.putString("var_name", "variable_value");
     editor.commit();                
退出应用程序并启动后,该值将重置为0

    SharedPreferences myPreference =getSharedPreferences("sharedpref_name",   MODE_PRIVATE);

    // Writing data to SharedPreferences
     Editor editor = myPreference.edit();
     editor.putString("var_name", "variable_value");
     editor.commit();                
以下是完整的代码:

import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

public class TestApp extends ActionBarActivity {

    public int variable = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_app);

        TextView statnumber = (TextView) findViewById(R.id.number);
        statnumber.setText(String.valueOf(variable));

        SharedPreferences mPrefs = getSharedPreferences("var", 0);
        Integer var = mPrefs.getInt("var", variable);

        SharedPreferences.Editor mEditor = mPrefs.edit();
        mEditor.putInt("var", variable).commit();
    }

    public void increase(View view){
        TextView statnumber = (TextView) findViewById(R.id.number);
        statnumber.setText(String.valueOf(variable = variable + 1));
    }
}
    SharedPreferences myPreference =getSharedPreferences("sharedpref_name",   MODE_PRIVATE);

    // Writing data to SharedPreferences
     Editor editor = myPreference.edit();
     editor.putString("var_name", "variable_value");
     editor.commit();                
下面是logcat所说的(可能不重要):

    SharedPreferences myPreference =getSharedPreferences("sharedpref_name",   MODE_PRIVATE);

    // Writing data to SharedPreferences
     Editor editor = myPreference.edit();
     editor.putString("var_name", "variable_value");
     editor.commit();                
05-02 22:23:53.010 10827-10827/com.rpd.testapp D/opengld﹕ 正在启用调试模式0
05-02 22:24:56.200 11058-11058/com.asd.testapp D/dalvikvm﹕ 延迟启用CheckJNI
05-02 22:24:56.440 11058-11058/com.asd.testapp D/ActivityThread﹕ SetTargetSeapUtilization:0.25
05-02 22:24:56.450 11058-11058/com.asd.testapp D/ActivityThread﹕ SetTargetTheApidealFree:8388608
05-02 22:24:56.450 11058-11058/com.asd.testapp D/ActivityThread﹕ setTargetHeapConcurrentStart:2097152
05-02 22:24:56.730 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到从方法android.support.v7.internal.widget.ActionBarOverlayLayout.OnTestedScrolAccepted引用的方法android.view.ViewGroup.OnTestedScrolAccepted
05-02 22:24:56.810 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法12212:Landroid/view/ViewGroup;。ONNESTEDSCROLACCEPTED(Landroid/视图/视图;Landroid/视图/视图;I)V
05-02 22:24:56.810 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0000处替换操作码0x6f
05-02 22:24:56.810 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到从方法android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll引用的方法android.view.ViewGroup.onStopNestedScroll
05-02 22:24:56.810 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法12218:Landroid/view/ViewGroup;。onStopNestedScroll(Landroid/view/view;)V
05-02 22:24:56.810 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0000处替换操作码0x6f
05-02 22:24:56.810 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到方法android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll,该方法引用自方法android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
05-02 22:24:56.810 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法9783:Landroid/support/v7/internal/widget/ActionBarOverlayLayout;。stopNestedScroll()V
05-02 22:24:56.810 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x000e处替换操作码0x6e
05-02 22:24:56.900 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到方法android.view.ViewGroup.onRtlPropertiesChanged,从方法android.support.v7.widget.Toolbar.onRtlPropertiesChanged引用
05-02 22:24:56.910 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法12215:Landroid/view/ViewGroup;。不动产变更(一)V
05-02 22:24:56.910 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0007处替换操作码0x6f
05-02 22:24:56.930 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到方法android.content.res.TypedArray.getChangingConfigurations,该方法引用自方法android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
05-02 22:24:56.930 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法396:Landroid/content/res/TypedArray;。getChangingConfigurations()I
05-02 22:24:56.930 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0002处替换操作码0x6e
05-02 22:24:56.930 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到从方法android.support.v7.internal.widget.TintTypedArray.getType引用的方法android.content.res.TypedArray.getType
05-02 22:24:56.930 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法418:Landroid/content/res/TypedArray;。getType(I)I
05-02 22:24:56.930 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0002处替换操作码0x6e
05-02 22:24:56.930 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到方法android.content.res.Resources.getDrawable,该方法引用自方法android.support.v7.internal.widget.ResourcesRapper.getDrawable
05-02 22:24:56.930 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法359:Landroid/content/res/Resources;。getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/drawable;
05-02 22:24:56.930 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0002处替换操作码0x6e
05-02 22:24:56.940 11058-11058/com.asd.testapp I/dalvikvm﹕ 找不到方法android.content.res.Resources.getDrawableForDensity,该方法引用自方法android.support.v7.internal.widget.ResourcesRapper.getDrawableForDensity
05-02 22:24:56.940 11058-11058/com.asd.testapp W/dalvikvm﹕ VFY:无法解析虚拟方法361:Landroid/content/res/Resources;。getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/drawable;
05-02 22:24:56.940 11058-11058/com.asd.testapp D/dalvikvm﹕ VFY:在0x0002处替换操作码0x6e
05-02 22:24:57.170 11058-11058/com.asd.testapp D/libEGL﹕ 已加载/system/lib/egl/libEGL_adreno200.so
05-02 22:24:57.190 11058-11058/com.asd.testapp D/libEGL﹕ loaded/system/lib/egl/libGLESv1_CM_adreno200.so
05-02 22:24:57.190 11058-11058/com.asd.testapp D/libEGL﹕ loaded/system/lib/egl/libGLESv2_adreno200.so
05-02 22:24:57.200 11058-11058/com.asd.testapp I/Adreno200 EGL﹕ : EGL 1.4高通公司构建:AU_LINUX_ANDROID_JB_REL_2.0.3.1_RB1.04.01.01.45.000_msm8625_JB_REL_2.0.3.1_Merge_REL_2.0.3.1_发布_(合并)

这是我第一次创建一个应用程序来创建缓存,所以我不完全理解它是如何工作的。感谢您的帮助。

在您的
TestApp
活动
var
中,始终返回0。下面是存储在
MyPrefsFile
文件中的所有值,
    SharedPreferences myPreference =getSharedPreferences("sharedpref_name",   MODE_PRIVATE);

    // Writing data to SharedPreferences
     Editor editor = myPreference.edit();
     editor.putString("var_name", "variable_value");
     editor.commit();