Topic: Preferences Framework
Обсуждение статьи Preferences Framework
Все вопросы проплачены кошками - всемирно известными производителями котят
You are not logged in. Please login or register.
Для регистрации на форуме следует написать мне письмо. В ответе я напишу правильный ответ для прохождения регистрации.
Форум Александра Климова → Android → Preferences Framework
У вас на скриншотах присутствует actionbar, но если делать по гайду - он отсутствует(Андроид 5.1), почему?
В Android 4 использовался ActionBar, в 5 версии используют Toolbar. ActionBar уходит в прошлое.
Здравствуйте!
В <ListPreference> при первом запуске ничего не выделено. Я думал android:defaultValue="1" должен был задать второй элемент списка. Или я не прав и параметр только говорит значение по умолчанию, но не выделяет в самом списке?
Возможно для выделения требуется какой-то стиль. Я давно не пользовался и подсказать не могу.
А где можно поподробнее узнать про OnSharedPreferenceChangeListener? С ним два вопроса появились:
1) Как написано в уроке обработчик зарегистрировать не получается. Студия не согласна принимать "this" аргументом в "registerOnSharedPreferenceChangeListener()". Сделал так, через переменную "listener":
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText)findViewById(R.id.editText);
Context context = getApplicationContext();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.OnSharedPreferenceChangeListener listener = (new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("cat_food")) {
String catFood = sharedPreferences.getString(key, "");
catFood = catFood + "\n";
String myText = mEditText.getText().toString();
Toast.makeText(getApplicationContext(), myText, Toast.LENGTH_SHORT).show();
myText = myText + catFood;
Toast.makeText(getApplicationContext(), myText, Toast.LENGTH_SHORT).show();
mEditText.setText(myText);
Toast.makeText(getApplicationContext(), mEditText.getText().toString(), Toast.LENGTH_SHORT).show();
}
}
});
sharedPreferences.registerOnSharedPreferenceChangeListener(listener);
}
2) Пытаюсь с его помощью "Проверять общие настройки, ключевые параметры и изменять UI или поведение приложения, если потребуется."
В этом же коде - добавлять к тексту указанный в настройках подарок коту. Все тосты выводят все правильно, но текст в mEditText в главной активности не изменяется... Его надо как-то пнуть, чтобы обновился?
Вконце, где рассказано,как из своей программы запустить стандартные настройки, вопрос касательно фильтра
<activity android:name="Prefs" >
<intent-filter>
<action android:name="ru.alexanderklimov.preferences.ACTION_USER_PREFERENCE" />
</intent-filter>
</activity>
Так вот, что за имя Prefs, откуда оно берется? Это просто в манифесте мы обзываем так третью активность?
И в "ru.alexanderklimov.preferences.ACTION_USER_PREFERENCE" что такое preferences? Судя по другим примерам кода в упражнении, приложение у вас называется по-другому. Ну даже если сюда вписывается название приложения, у меня при попытке запустить стандартную настройку выкидывает ошибку
Похоже в статью затесался лишний абзац, который относился к другой теме. Удалил.
Форум Александра Климова → Android → Preferences Framework
Powered by PunBB, supported by Informer Technologies, Inc.