用复选框以编程方式填充首选项

| 在我的设置页面中,我有一个首选项,该偏好会获取一个可切换设置的列表,我希望这些列表显示为各个复选框的首选项。 我知道
preferences.xml
支持生成首选项列表(查看wi-fi设置页面),但是
ListPreference
仅允许您从列表中选择一个。 我一直在寻找如何以编程方式生成首选项,但仅设法找到如何更改XML中已经存在的首选项的属性。     
已邀请:
这是一个简短的示例(假设您要扩展
PreferenceActivity
):
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(this);

    PreferenceCategory category = new PreferenceCategory(this);
    category.setTitle(\"category name\");

    screen.addPreference(category);

    CheckBoxPreference checkBoxPref = new CheckBoxPreference(this);
    checkBoxPref.setTitle(\"title\");
    checkBoxPref.setSummary(\"summary\");
    checkBoxPref.setChecked(true);

    category.addPreference(checkBoxPref);
    setPreferenceScreen(screen);
}
    
以编程方式添加首选项,并在xml文件中添加其他首选项: 其他解决方案对我不起作用,因为我也有带有首选项的xml。我不确定所有这些调用是否都是必需的/冗余的,但这是可行的。 onCreate()方法,该类扩展了PreferenceActivity:
setContentView(R.layout.preferences);
addPreferencesFromResource(R.xml.preferences);

PreferenceScreen pScreen = getPreferenceManager().createPreferenceScreen(this);     
CheckBoxPreference cb = new CheckBoxPreference(this);
cb.setKey(\"cb\");
cb.setTitle(\"BLAH\");
cb.setOrder(99);        //not working...
pScreen.addPreference(cb);

setPreferenceScreen(pScreen);
addPreferencesFromResource(R.xml.preferences);
旁注:由于我需要生成一个动态复选框列表,因此它最适合放在内部的PreferenceScreen中。因此,我在xml中创建了此PreferenceScreen,然后在其中动态生成了复选框。这种方式的排序没有关系,因为所有“新的” dynamica复选框都在此屏幕内。     

要回复问题请先登录注册