Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 Can';即使存在值,也无法获取共享的首选项值_Android_Sharedpreferences_Preferences - Fatal编程技术网

Android Can';即使存在值,也无法获取共享的首选项值

Android Can';即使存在值,也无法获取共享的首选项值,android,sharedpreferences,preferences,Android,Sharedpreferences,Preferences,每当我试图从SharedReference访问getInt()时,我的应用程序就会崩溃,但我可以将首选项作为映射进行迭代。例如,请参见下面的星号线: private void loadPref(){ myPrefs = PreferenceManager.getDefaultSharedPreferences(this); int sf = DEFAULT_VALUE; Map<String,?> keys = myPrefs.getAll(); f

每当我试图从
SharedReference
访问
getInt()
时,我的应用程序就会崩溃,但我可以将首选项作为映射进行迭代。例如,请参见下面的星号线:

private void loadPref(){
    myPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    int sf = DEFAULT_VALUE;

    Map<String,?> keys = myPrefs.getAll();
    for(Map.Entry<String,?> entry : keys.entrySet()){
        if (entry.getKey().contentEquals("score_format"))
            // this works:                                         //*****
            sf = Integer.parseInt(entry.getValue().toString());    //*****
    }

    // but this does not:                                          //*****  
    // sf = myPrefs.getInt("score_format", DEFAULT_VALUE);         //*****
    setScoreFormat(sf);
}
private void loadPref(){
myPrefs=PreferenceManager.getDefaultSharedPreferences(此);
int sf=默认值;
Map keys=myPrefs.getAll();
for(Map.Entry:keys.entrySet()){
if(entry.getKey().contentEquals(“分数格式”))
//这项工作://*****
sf=Integer.parseInt(entry.getValue().toString())//*****
}
//但事实并非如此://****
//sf=myPrefs.getInt(“分数格式”,默认值)//*****
核心格式(sf);
}
显然,我的首选项正在被保存(如此示例和跨多个活动的工作首选项屏幕所示)。在尝试访问GetDefaultSharedReferences之前,我正在调用super.onCreate()

我应该考虑什么来理解为什么这个代码不起作用?为什么map可以工作,而“getInt”方法不行?我确实注意到,如果我试图显式转换键值,应用程序也会崩溃。。。我必须先把它投到弦上


我遗漏了什么?

看起来像是与
score\u格式关联的对象
键是
字符串
,但您试图将其作为
int
获取,这是一个错误。

如果您不想解析,请确保使用
putExtra
输入意图的分数是一个int类型,不是字符串。

您可以发布异常的日志吗?而
默认值的定义呢
?是的,非常正确。真不敢相信我错过了。到处都是该死的树,我看不见森林。谢谢