3 回答
TA贡献1860条经验 获得超9个赞
不幸:
似乎您无法使用XML在values / arrays.xml中的数组中引用单个项目。当然可以用Java,但不能用XML。Android开发人员参考资料中没有关于此操作的信息,我在其他任何地方都找不到。
似乎您不能在首选项布局中使用数组作为键。每个键必须是具有其自己的键名称的单个值。
我要完成的工作:我希望能够遍历这17个首选项,检查是否已选中该项,如果是,则从字符串数组中为该首选项名称加载字符串。
这是我希望完成此任务的代码:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
ArrayAdapter<String> itemsArrayList = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1);
String[] itemNames = getResources().getStringArray(R.array.itemNames_array);
for (int i = 0; i < 16; i++) {
if (prefs.getBoolean("itemKey[i]", true)) {
itemsArrayList.add(itemNames[i]);
}
}
我做了什么:
我为每个项目设置了单个字符串,并在中引用了单个字符串。我将单个字符串引用用于首选项布局复选框标题,并将数组用于循环。
为了遍历首选项,我只命名了键,例如key1,key2,key3等。由于您使用字符串引用了键,因此可以选择在运行时“构建”键名称。
这是新的代码:
for (int i = 0; i < 16; i++) {
if (prefs.getBoolean("itemKey" + String.valueOf(i), true)) {
itemsArrayList.add(itemNames[i]);
}
}
- 3 回答
- 0 关注
- 666 浏览
添加回答
举报