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 PreferenceCategory
将ListPreference
被添加到:
<?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
已经成功,但是当我选择它.... :(我期待的选项没有条目:"一","二","三"
归档时间: |
|
查看次数: |
4105 次 |
最近记录: |