【问题标题】:How to setSummary of a preference-headers如何设置首选项标题的摘要
【发布时间】:2014-08-11 10:57:38
【问题描述】:

如何在运行时设置首选项标头的摘要?即使我在其中输入了一个密钥,findPreference(key) 也会产生 NullPointerException。

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:fragment="PrefActivity$Fragment1"
            android:title="Fragment1"
            android:summary="Summary2"/>
    <header android:fragment="PrefActivity$Fragment2"
            android:title="Fragment2"
            android:summary="Summary2"/>
</preference-headers>

感谢您的帮助!

【问题讨论】:

  • 我猜你在PreferenceActivity 上调用invalidateHeaders(),然后从onBuildHeaders() 返回正确的标题(带有更新的摘要)。 findPreference() 用于首选项,而不是标题。
  • @CommonsWare 但是如何在onBuildHeaders 中返回带有动态摘要的标题?目前我只是在做loadHeadersFromResource(R.xml.preference_headers, target);
  • List&lt;Header&gt; 中找到您的标题并在从onBuildHeaders() 返回之前调整字段(例如,summary)。

标签: android preferenceactivity preferencefragment


【解决方案1】:

感谢@CommonsWare,我找到了解决方案:

@Override
public void onBuildHeaders(List<Header> target) {
  loadHeadersFromResource(R.xml.preference_headers, target);

  for(Header header: target) {
    if (SettingsFragmentTest.class.getName().equals(header.fragment)) {
      header.summary = "New Summary!";
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2011-10-28
    • 2014-05-04
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多