Один вопрос: У меня есть EditTextPreference, чтобы пользователь вводил путь по умолчанию для приложения.Как получить оценку от предпочтений
Как я могу управлять тем, что новое значение должно быть видно в используемом фрагменте предпочтений?
После того, как пользователь нажал ok в окне настроек, чтобы выполнить новые настройки, я хочу написать новый путь в виде сводки под заголовком.
Я уже пробовал работать с onSharedPreferenceChanged, но это не сработало. Я не знаю, как получить доступ к полю редактирования из всплывающего окна, в котором находится текст пользователя.
Надеемся найти помощь Andreas!
Редактировать: Вот исходный код для всего PreferenceFragment, который я использовал и модифицировал с предложениями Rustam. К сожалению, это не сработает.
package com.example.wbsettings;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
public class PreferenceFrag extends PreferenceFragment
implements SharedPreferences.OnSharedPreferenceChangeListener{
public static final String KEYVAL = "startpath";
SharedPreferences sp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
EditTextPreference prefUrl = (EditTextPreference) findPreference(KEYVAL);
prefUrl.getEditText().setHint("default path");
//>> Here the app crashed when I debug it
------------------------------------
prefUrl.setSummary(sp.getString(KEYVAL, ""));
}//onCreate
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
Preference pref = findPreference(key);
if (pref instanceof EditTextPreference) {
EditTextPreference etp = (EditTextPreference) pref;
pref.setSummary(etp.getText());
}
}//onSharedPreferenceChanged
}
То, что я также не понимаю, в вашем примере: Где предпочтения для регистрации с OnSharedPreferenceChangeListener? Я имею в виду, что на данный момент я никогда не достигаю процедуры onSharedPreferenceChanged из-за сбоя. Но когда я делаю комментарий, и приложение работает и закончено, я никогда не останавливался в точке останова, установленной в процедуре onSharedPreferenceChanged.
Другой вопрос: Что лучше всего ответить на комментарий, если ответ слишком длинный для другого комментария? Я попытался открыть ответ на свой вопрос. Но всплывающее сообщение сообщило мне, что это не так, как должно быть. Так что делать?
С уважением, Андреас!
один простой вопрос: Вы зарегистрированы Ваши предпочтения в OnSharedPreferencesChangedListener? Большинство poeple забудьте об этом ... – Opiatefuchs
Спасибо за это. Да, я сделал это - после того, как забыл об этом и раньше. –