用xml引用字符串数组资源中的字符串

我有首选项,您可以在其中启用/禁用菜单上将显示哪些项目。有17个项目。我在values / arrays.xml中创建了一个字符串数组,其中包含这17个项目的标题。

我有preferences.xml,它具有我的首选项文件的布局,并且我想引用字符串数组中的单个项目用作标题。

我怎样才能做到这一点?

在Android开发人员参考中,我看到了如何使用XML引用单个字符串,但是没有看到如何从XML数组资源引用字符串。


慕姐4208626
浏览 675回答 3
3回答

慕码人2483693

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

相关分类

Android