使用PreferenceScreen / PreferenceActivity配置主屏幕小部件

时间:2010-05-14 12:28:53

标签: android

我正在创建一个appwidget,用户应该可以在将其添加到主屏幕之前对其进行配置。对我来说,PreferenceScreen / PreferenceActivity似乎是完美的任务,但这些类背后的意图似乎是配置一个实际的应用程序。我搜索过,但找不到任何涵盖这个问题的文档或教程。

是否可以使用这些类配置窗口小部件,或者是通过普通视图配置窗口小部件的唯一选择?

感谢您的回答!

2 个答案:

答案 0 :(得分:14)

您当然可以使用PreferenceActivity来实现此目的。但是,如果您将其设置为窗口小部件配置中的android:configure活动,则必须执行一些花哨的步法,然后更新窗口小部件。

答案 1 :(得分:1)

commonsWare: https://github.com/commonsguy/cw-advandroid/blob/master/AppWidget/LoremWidget/res/xml/widget_provider.xml 您的示例根本不使用config-activity,因此肯定没有使用PreferencesActivity。

就PreferencesSctivities而言, 它不适用于setResult(RESULT_CANCELED);在onCreate(9然后在onBackPressed中的setResult(...)。 Launcher.java中有很多有线NullPointerExceptions(第88X行)。 但它确实有效做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();

...