Android Eclipse SharedPreferences位置再次出现

时间:2013-06-11 01:40:39

标签: android sharedpreferences

我已经查看了我可以找到的所有线程,并且没有一个真正解释了为什么找不到该文件,所以我再次尝试使用代码。我在调试器中的LG Spectrum上运行了这个。这一切都很好,除了没有创建的文件,我可以找到,而且我无法读取我写的名称/值对。

package com.example.locdir;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.SharedPreferences;
import android.content.Context;

public class MainActivity extends Activity {

int testint = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setup();
    readback();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

private void setup() {
    SharedPreferences sharedPref = getSharedPreferences(
            getString(R.string.preference_file_key), Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt("testint", 475);
    editor.commit();        
}

private void readback() {
    SharedPreferences sharedPref = getSharedPreferences(
            getString(R.string.preference_file_key), Context.MODE_PRIVATE);
    int testint = sharedPref.getInt("testint", 0);
}
}

根据调试器行为,它很顺利。 sharedPref.mFile.path的值是“/data/data/com.example.locdir/shared_prefs/locdir_pref.xml”

运行后,此路径上没有此名称的文件。

当调用回读方法并且getInt发生时,testint仍为0。

没有我能看到的日志投诉。

哦,我也试过了sharedPref.apply()。同样的事情。

2 个答案:

答案 0 :(得分:1)

您在课程开头宣布变量int testint = 0。删除该行,一切都应该正常。

public class MainActivity extends Activity {

int testint = 0; // REMOVE THIS LINE

答案 1 :(得分:0)

你在哪里监控testint。如果它在onCreate()方法中,那么无论如何都会为0,因为您已将testint定义为全局变量并将其初始化为0。 更改您的代码如下。

private void readback() {
    SharedPreferences sharedPref = getSharedPreferences(
            getString(R.string.preference_file_key), Context.MODE_PRIVATE);
    testint = sharedPref.getInt("testint", 0); // remove int
}
}