Использование PreferenceScreen / PreferenceActivity для настройки виджетов домашнего экрана - PullRequest
4 голосов
/ 14 мая 2010

Я создаю приложение-виджет, в котором пользователь должен иметь возможность настроить его, прежде чем оно будет добавлено на домашний экран. Мне кажется, PreferenceScreen / PreferenceActivity кажется идеальным для этой задачи, но цель этих классов, похоже, заключается в настройке реального приложения. Я искал, но не могу найти какую-либо документацию или учебники, которые охватывают этот вопрос.

Можно ли настроить виджет с помощью этих классов или это единственная альтернатива для настройки его с помощью обычного представления?

Спасибо за любые ответы!

Ответы [ 2 ]

14 голосов
/ 14 мая 2010

Вы, конечно, можете использовать PreferenceActivity для этой цели. Однако если вы настроили его как действие android:configure в конфигурации своего виджета, вам придется проделать небольшую работу, чтобы обновить ваш виджет.

1 голос
/ 05 мая 2011

CommonsWare: https://github.com/commonsguy/cw-advandroid/blob/master/AppWidget/LoremWidget/res/xml/widget_provider.xml ваш пример вообще не использует config-активность и, следовательно, определенно не PreferencesActivity.

Что касается PreferencesActivities, он не работает для setResult (RESULT_CANCELED); в onCreate (9, а затем setResult (...) в onBackPressed. В Launcher.java есть глубокие исключения NullPointerExceptions (строка 88X). Однако это работает do Provider.updateAppWidget () и setResult (RESULT_OK, resultValue); в onCreate а затем обработать дальнейшие обновления в onBackPressed.

Может помочь и следующее отсекаемое:

onCreate() {
CheckBoxPreference dark = (CheckBoxPreference)findPreference("xyz");
dark.setChecked(false);
...
onBackPressed() {
CheckBoxPreference dark = (CheckBoxPreference)findPreference("xyz");
boolean checked = dark.isChecked();

...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...