2016-12-09 24 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