在我的应用中,我正在尝试拥有自定义服务器列表,我希望能够添加它们并单独编辑它们各自的设置。
标准Android PreferenceFragment
看起来很适合我的目的。有没有办法可以用它来编辑所选的项目?或者,我可以轻松地重新创建它的外观和行为吗?
简而言之:
---------------- ----------------
| +| | |
| Item A | | Preference |
| Item B | --> Click on "A", "B" or "+" --> | Screen |
| ... | | |
| | | |
---------------- ----------------
请注意,我也知道如何使用屏幕层次结构,因为我无法在应用程序运行时动态添加或删除项目,因此无法满足要求。
答案 0 :(得分:1)
根据我的理解,你想在你的片段中动态添加偏好..我是对的吗?
看看我发现的这个样本:
onCreate(){
this.setPreferenceScreen(createPreferenceHierarchy());
}
public PreferenceScreen createPreferenceHierarchy(){
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
// category 1 created programmatically
PreferenceCategory cat1 = new PreferenceCategory(this);
cat1.setTitle("title");
root.addPreference(cat1);
ListPreference list1 = new ListPreference(this);
list1.setTitle(getResources().getString(R.string.some_string_title));
list1.setSummary(getResources().getString(R.string.some_string_text));
list1.setDialogTitle(getResources().getString(R.string.some_string_pick_title));
list1.setKey("your_key");
CharSequence[] entries = calendars.getCalenders(); //or anything else that returns the right data
list1.setEntries(entries);
int length = entries.length;
CharSequence[] values = new CharSequence[length];
for (int i=0; i<length; i++){
CharSequence val = ""+i+1+"";
values[i] = val;
}
list1.setEntryValues(values);
cat1.addPreference(list1);
return root;
}//end method