Использование PreferenceScreen / PreferenceActivity для настройки виджетов главного экрана

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

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

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

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

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

Что касается PreferencesActivities, он НЕ работает для setResult (RESULT_CANCELED); В onCreate (9, а затем setResult (…) in onBackPressed. В Luncher.java (строка 88X) есть проводные NullPointerExceptions. Однако он работает с 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();