在Android中重新实现首选屏幕
在我的应用程序中,我试图拥有一个自定义服务器列表,我希望能够添加它们并分别编辑它们各自的设置 标准的安卓在Android中重新实现首选屏幕,android,sharedpreferences,preferenceactivity,Android,Sharedpreferences,Preferenceactivity,在我的应用程序中,我试图拥有一个自定义服务器列表,我希望能够添加它们并分别编辑它们各自的设置 标准的安卓PreferenceFragment外观非常适合我。是否有一种方法可以使用它编辑选定的项目?或者,我可以轻松地重新创建它的外观和行为吗 简言之: ---------------- ---------------- | +| |
PreferenceFragment
外观非常适合我。是否有一种方法可以使用它编辑选定的项目?或者,我可以轻松地重新创建它的外观和行为吗
简言之:
---------------- ----------------
| +| | |
| Item A | | Preference |
| Item B | --> Click on "A", "B" or "+" --> | Screen |
| ... | | |
| | | |
---------------- ----------------
请注意,我还知道如何使用屏幕层次结构,这不符合要求,因为我无法在应用程序运行时动态添加或删除项目。据我所知,您希望在片段中动态添加首选项。。我说的对吗 看看我发现的这个样本:
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
onCreate(){
这个.setPreferenceScreen(createPreferenceHierarchy());
}
公共首选项屏幕createPreferenceHierarchy(){
PreferenceScreen root=getPreferenceManager().createPreferenceScreen(此);
//类别1以编程方式创建
PreferenceCategory cat1=新的PreferenceCategory(本);
第1类:设定所有权(“所有权”);
根。addPreference(cat1);
ListPreference list1=新的ListPreference(此);
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));
列表1.设置键(“您的_键”);
CharSequence[]entries=calendars.GetCalendars();//或返回正确数据的任何其他内容
列表1.设置条目(条目);
int length=entries.length;
CharSequence[]值=新的CharSequence[length];
对于(inti=0;主题是“android:theme.Holo”…你期望什么?我不是在问主题(我知道如何更改),我问的是如何动态使用首选项片段
,而不必将其绑定到XML资源。请参阅我的更新,使用模式可能会更清晰?很好,这正是我想要的!我尝试了谷歌,但搜索“安卓自定义首选项屏幕”或者有些东西并没有给出相关的答案……这就是我在阅读了你的问题后在谷歌上键入的内容:android添加偏好程序MaticallyRoot。然后我必须为我缺乏洞察力而道歉。无论如何,非常感谢;)最重要的是你得到了答案;-)