【问题标题】:Changing summary from outside preferenceactivity从外部偏好活动更改摘要
【发布时间】:2014-08-16 08:51:32
【问题描述】:

我在android 中使用preferenceActivity 来操纵我的共享偏好。我想出了如何在preferenceActivity 中使用OnSharedPreferenceChangeListener 更改摘要。但是,我正在使用一个选择轮,所以我使用一个意图从这样的偏好活动中启动它......

<Preference
        android:summary="Snooze Picker Wheel"
        android:title="Snooze Timer" 
        android:key="snooze_pref">

        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.example.alarm.SnoozePicker"
            android:targetPackage="com.example.alarm" />
    </Preference>

我一直在研究,但找不到将选择器轮的摘要更新为所选项目的方法。 所以我的问题是,有没有办法从不同的活动中更改preferenceActivity 的摘要?这将是什么实现,我在哪里可以了解更多关于从不同活动中具体更改摘要的信息?感谢您的帮助。

编辑:我通过在 snoozePicker 活动中设置共享首选项,然后在 onCreate 和 onResume 的首选项活动中像这样设置它得到了一些工作

if (sharedpreferences.contains(Snooze)) {
        int prefs = sharedpreferences.getInt(Snooze, -1);
        Preference editSnoozePref = (Preference) findPreference("snooze_pref");
        editSnoozePref
        .setSummary("Snooze Setting is " + prefs + " minutes");
    }

【问题讨论】:

    标签: android sharedpreferences android-preferences preferenceactivity


    【解决方案1】:

    AFAIK,无法从其他 Activity 更改摘要。
    作为一种解决方法,您可以将摘要保存在 SharedPreference 中,并在创建 PreferenceActivity 时设置此摘要。这将为用户提供无缝体验,因为摘要仅在 PreferenceActivity 创建后可见。

    【讨论】:

    • 好的,所以我会在不同活动的共享首选项中创建值,然后在创建或恢复 PreferenceActivity 时更新摘要?
    • 你还在吗@jungleboy?我还有一个小问题
    • 是的,告诉我。只有我在这里
    • 我试图更改我的贪睡选择器的摘要值,但它不允许我。我尝试为上面的 xml 代码创建一个 android:key="snooze_key" 以便我可以使用它来查找 EditTextPreference 但它不起作用。那么如何访问我发布的 xml 代码的摘要?
    • 您应该只在SharedPreferences 中设置摘要文本。您将无法访问其他 Activity 中的摘要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多