【问题标题】:How to change the summary of a preference placed in a PreferenceFragment如何更改放置在 PreferenceFragment 中的首选项摘要
【发布时间】:2014-07-08 17:36:35
【问题描述】:

我正在开发一个应用程序,我正在尝试遵循 Android 指南并使用 android studio 模板。 我在偏好活动方面遇到了各种问题,特别是我无法访问加载它的片段之外的偏好,即我需要从活动而不是片段修改偏好摘要,因为尝试鉴于它是一个静态类并且为摘要提供新值的方法是非静态的(它是一个获取版本方法,它使用 getPackageManager 非静态方法),因此如果片段内部不可能进行修改。 有没有办法解决这个问题?

【问题讨论】:

    标签: android fragment settings preferences


    【解决方案1】:

    您应该能够从片段中访问 packageManager。例如:

    version = getActivity().getPackageManager().
                    getPackageInfo(getActivity().getPackageName(),  0).versionName;
    

    如果你想从活动中做到这一点,你只需要获得对偏好的引用。

    首先在片段中获取对偏好的引用:

    Preference myPref;    
    
    public void onCreate(){
        myPref = findPreference("myPref");
    }
    
    public Preference getMyPref(){
        return myPref;
    }
    

    在活动中你可以做到:

    myFragment.getMyPref().setSummary("Preference Summary");
    

    您还可以从片段中调用 Activity 上的方法,并将您想要更新摘要的首选项传递给它。

    【讨论】:

    • 伙计,你成就了我的一天!我尝试了数百万其他棘手的方法,但都没有成功。说实话,我设法以另一种方式做到了这一点,但我真的觉得这个更干净,更优化。
    • 如果您对我的回答感到满意,请选择/投票。谢谢
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多