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类型,不是字符串。您可以发布异常的日志吗?而默认值的定义呢
?是的,非常正确。真不敢相信我错过了。到处都是该死的树,我看不见森林。谢谢