2016-12-09 2 views
0

Я не могу понять, почему я продолжаю получать строку «default», когда я захватываю входные данные из 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

идти думал, что это даже его немного Староновая> 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

Смежные вопросы