不幸:

似乎您无法使用XML在values / arrays.xml中的数组中引用单个项目。当然可以用Java,但不能用XML。Android开发人员参考资料中没有关于此操作的信息,我在其他任何地方都找不到。

似乎您不能在首选项布局中使用数组作为键。每个键必须是具有其自己的键名称的单个值。

我要完成的工作:我希望能够遍历这17个首选项,检查是否已选中该项,如果是,则从字符串数组中为该首选项名称加载字符串。

这是我希望完成此任务的代码:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

ArrayAdapter itemsArrayList = new ArrayAdapter(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]);

}

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐