Следуя новым API, я создал довольно простой PreferenceFragment
:андроид - изменение значения ListPreference от деятельности
public class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
я использую это в моем Activity
создан, чтобы дать пользователю возможность изменять настройки приложения:
public class SetPreferenceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new PrefsFragment()).commit();
}
}
Теперь мне нужно изменить сводку ListPreference
по выбору пользователя. Существует не findPreference()
метод, определенный для Activity
класс, , так как я могу получить желаемое предпочтение?
Извините, если ответ очевиден, я не очень знаком с новым API и всегда использовал PreferenceActivity
, прежде чем он стал устаревшим ..
После вашего советовать я пытался создать такой метод в моем PrefsFragment. Этот метод находит предпочтение, используя findPreference(), но всегда имеет значение null. Ключ на 100% правильный. Есть идеи? – Droidman
хорошо я понял, что этот метод называется BEFORE addPreferencesFromResource (R.xml.preferences); поэтому предпочтение не может быть найдено. Ищете способ ... – Droidman
Какой метод вызывается раньше? пытаетесь ли вы изменить предпочтение до его создания или после того, как был создан фрагмент, где значение изменилось, и вы хотите, чтобы что-то отображалось по-разному? – tyczj