2016-12-09 25 views
0

我似乎无法理解,当我从EditTextPreference中获取输入时,为什么不断显示“默认”字符串。阅读EditTextPreference

<EditTextPreference 
     android:title="@string/settings_title_signature" 
     android:summary="@string/settings_enter_signature" 
     android:singleLine="true" 
     android:key="edit_signature_key" 
/> 

我似乎从未得到过使用Sharedpreferences的文本字段。它只是默认为“默认”,而不是密钥中应该包含的内容。

SharedPreferences myPreference = PreferenceManager.getDefaultSharedPreferences(this); 
String sig = myPreference.getString("edit_signature_key", "default"); 
+0

去想过这甚至其位OLD-> https://androidpartaker.wordpress.com/tag/edittext -preference-summary/ –

回答

0

确保您使用的偏好设置屏幕或偏好片段内的EditTextPreference。听起来就像你只是使用独立的EditTextPreference。

如果您在正确的容器中使用它,请使用您的所有代码更新您的帖子,我将能够提供帮助。

(不得不把这个作为回答,而不是评论,因为我没有足够的代表处)

+0

感谢您的建议伴侣。虽然我正在修改git-hub上的大型存储库的一部分,所以将整个代码放在这里可能有点过分。 我没有将共享偏好重写为: SharedPreferences myPreference = this.getSharedPreferences(“edit_signature_key”,Context.MODE_PRIVATE); 但仍然存在同样的问题。 –

+0

我的家伙没问题。如果您正在使用PreferenceScreen或PreferenceFragment,那么它会向您写入默认首选项,因此这不是问题所在。只有我能想到的是,如果您的更新方法没有正确设置,比如在设置首选项的onCreatePreferences方法中,您应该有onSharedPreferenceChanged(sharedPrefs,getString(R.string.editKey));然后在你的字符串中有 edit_signature_key