【问题标题】:Using PreferenceScreen/PreferenceActivity to configure home screen widgets使用 PreferenceScreen/PreferenceActivity 配置主屏幕小部件
【发布时间】:2011-08-18 03:20:14
【问题描述】:

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

是否可以使用这些类来配置小部件,还是只能通过普通视图来配置它?

感谢您的任何回答!

【问题讨论】:

    标签: android


    【解决方案1】:

    您当然可以为此使用PreferenceActivity。但是,如果您在小部件配置中将其设置为 android:configure 活动,则您必须做一些花哨的工作才能更新小部件。

    【讨论】:

    • 哇,非常感谢!这就是我所说的迅速而简洁的答案。由于我是新来的,所以我无法投票赞成您的答案,但是当我的声誉上升时,我会尝试这样做。周末愉快。
    • 标记任何你可以更新链接的机会,这似乎表明你已经从你的回购中消失了
    • @Rob:实际上,现在,我没有任何带有配置屏幕的应用小部件,抱歉。在 Twitter 更改其身份验证模型、破坏代码后,该项目被删除。不过,我将编辑问题以删除链接。
    • 没关系,我是通过你的回购历史找到的,希望你不介意。 github.com/commonsguy/cw-advandroid/blob/…
    【解决方案2】:

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

    就 PreferencesActivities 而言, setResult(RESULT_CANCELED) 不起作用;在 onCreate(9 中,然后在 onBackPressed 中设置结果(...)。 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();
    

    ...

    【讨论】:

    • 今天才看到你的笔记;请使用 cmets 联系人们以获取答案。该链接指向已删除的另一个项目;我现在已经从答案中删除了链接。对于任何混淆,我深表歉意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    相关资源
    最近更新 更多