以编程方式创建ListPreference - 但条目列表为空

Hev*_*ski 13 android listpreference

我正在尝试以编程方式创建一个ListPreference,我可以做,但是当我选择它时,它的条目列表是空的.我相信我正确设置setEntries()setEntryValues()使用CharSequence阵列,但是当我选择它,它只是空的.

请在下面的ActivitySetting课程中找到.请注意我使用的PreferenceFragments是不使用弃用的方法.但我只有一个PreferenceFragment当前设置为默认值

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // Display the fragment as the main content.
    getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragment()).commit();
}

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

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.settings);

        // Create the new ListPref
        ListPreference customListPref = new ListPreference(getActivity());

        // Get the Preference Category which we want to add the ListPreference to
        PreferenceCategory targetCategory = (PreferenceCategory) findPreference("TARGET_CATEGORY");

         CharSequence[] entries = new CharSequence[]{"One", "Two", "Three"};
         CharSequence[] entryValues = new CharSequence[]{ "1", "2", "3" };

         // IMPORTANT - This is where set entries...looks OK to me
         customListPref.setEntries(entries);
         customListPref.setEntryValues(entryValues);

         customListPref.setTitle("Title");
         customListPref.setSummary("This is the summary");
         customListPref.setDialogMessage("Dialog Message");
         customListPref.setPersistent(true);

         // Add the ListPref to the Pref category
         targetCategory.addPreference(customListPref);
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

下面是它只是有单一的夹Setting.xml PreferenceCategoryListPreference被添加到:

   <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <PreferenceCategory android:title="Some Options" android:key="TARGET_CATEGORY">
    </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

这是我得到的.在ListPreference已经成功,但是当我选择它.... :(我期待的选项没有条目:"一","二","三"

在此输入图像描述

Hev*_*ski 9

找到它如果你设置setDialogMessage()然后这会覆盖内容所以通过删除这一行,它现在工作.