为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2019-11-23 13:49:02
我有首选项,您可以在其中启用/禁用菜单上将显示哪些项目。有17个项目。我在values / arrays.xml中创建了一个字符串数组,其中包含这17个项目的标题。我有preferences.xml,它具有我的首选项文件的布局,并且我想引用字符串数组中的单个项目用作标题。我怎样才能做到这一点?在Android开发人员参考中,我看到了如何使用XML引用单个字符串,但是没有看到如何从XML数组资源引用字符串。
查看完整描述

3 回答

?
慕码人2483693

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]);  

    }  

}


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 666 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信