开发者

Using PreferenceScreen/PreferenceActivity to configure home screen widgets

开发者 https://www.devze.com 2022-12-30 02:10 出处:网络
I\'m creating an appwidget, where the user should be able to configure it before it is added to the home screen. To me, PreferenceScreen/PreferenceActivity seems perfect for the task, but the intentio

I'm creating an appwidget, where the user should be able to configure it before it is added to the home screen. To me, PreferenceScreen/PreferenceActivity seems perfect for the task, but the intention behind these classes seem to be configuring开发者_如何学编程 an actual application. I've searched, but cannot find any documentation or tutorials which covers this question.

Is it possible to configure a widget using these classes, or is the only alternative to configure it through an ordinary view?

Thanks for any answers!


You certainly can use a PreferenceActivity for this purpose. If you set it up as the android:configure activity in your widget configuration, though, you will have to do a bit of fancy footwork to then get your widget updated.


commonsWare: https://github.com/commonsguy/cw-advandroid/blob/master/AppWidget/LoremWidget/res/xml/widget_provider.xml your example does not use a config-activity at all and thus certainly no PreferencesActivity.

As far as PreferencesActivities go, it does NOT work to setResult(RESULT_CANCELED); in onCreate(9 and then setResult(...) in onBackPressed. There are wired NullPointerExceptions deep in Launcher.java (line 88X). However it does work do Provider.updateAppWidget() and setResult(RESULT_OK, resultValue); in onCreate and then handle further updates in onBackPressed.

The following snipped may help too:

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

...

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号