【问题标题】:When i click on header, no preferences show up当我单击标题时,没有显示首选项
【发布时间】:2015-03-08 18:08:24
【问题描述】:

我正在为我的应用程序进行设置活动。我为首选项设置了两个标题,然后为每个标题制作了片段。问题是当我点击标题时,什么都没有出现。感谢您的帮助。

这是我的偏好活动

public class Preferences extends PreferenceActivity {

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

    }
}

这是第一个片段

public class Prefs1 extends PreferenceFragment {

    public static class SettingsFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            addPreferencesFromResource(R.xml.fragment_prefs1);
        }

    }


}

这是第二个片段:

public class Prefs2 extends PreferenceFragment {


    public static class SettingsFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            addPreferencesFromResource(R.xml.fragment_prefs2);
        }

    }

}

XML 文件: 标题

<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <header
        android:fragment="com.example.lubys.prefs.prefs1"
        android:title="First category"
        android:summary="This doesnt need summary" />
    <header
        android:fragment="com.example.lubys.prefs.prefs2"
        android:title="Second cat"
        android:summary="This is awful summary">
        </header>
</preference-headers>

片段1:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.lubys.prefs.prefs1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <PreferenceCategory
        android:title="the title"
        android:key="key2">
    <EditTextPreference android:title="Your Name"
        android:key="username"
        android:summary="Please provide your username"></EditTextPreference>
    <CheckBoxPreference android:title="Application Updates"
        android:defaultValue="false"
        android:summary="This option if selected will allow the application to check for latest versions."
        android:key="applicationUpdates" />

        <ListPreference
            android:title="Download Details"
            android:summary="Select the kind of data that you would like to download"
            android:key="downloadType"
            android:defaultValue="1"
            android:entries="@array/c"
            android:entryValues="@array/c" />

</PreferenceCategory>

</PreferenceScreen>

片段2:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.lubys.prefs.prefs1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <PreferenceCategory
        android:title="sms"
        android:key="pref_key_storage_settings">
        <CheckBoxPreference
            android:key="saas"
            android:summary="asde"
            android:title="Something"
            android:defaultValue="false"/>
    </PreferenceCategory>
</PreferenceScreen>

【问题讨论】:

    标签: java android android-fragments preferenceactivity preferencefragment


    【解决方案1】:

    检查你是否没有得到:

    java.lang.RuntimeException:

    PreferenceActivity 的子类必须重写 isValidFragment(String) 以验证 Fragment 类是否有效! XXX 没有检查片段 YYY 是否有效。

    isValidFragment Android API 19

    when android's isValidFragment() from PreferenceActivity gets called?

    http://securityintelligence.com/new-vulnerability-android-framework-fragment-injection#.VRGSv1V_NBc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      相关资源
      最近更新 更多