You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:如何将resources.getStringArray转为可变数组?

解决Android资源数组转可变集合的问题

你从resources.getStringArray(R.array.paintings)获取到的是不可变的String[]数组,无法直接赋值给ArrayList<String>,因为二者类型不匹配。以下是几种可行的转换方法:

方法1:Kotlin简洁写法(推荐)

直接使用Kotlin的扩展函数toMutableList()将数组转为可变列表:

val array = resources.getStringArray(R.array.paintings)
val mutableList = array.toMutableList()

// 现在可以执行增删操作
mutableList.removeAt(2)
mutableList.add("新增画作名称")

方法2:Java风格写法

如果习惯Java的操作方式,可以用Arrays.asList()先将数组转为List,再用ArrayList包装(注意:Arrays.asList()返回的是固定大小的List,必须包装成ArrayList才能支持增删):

import java.util.Arrays

val array = resources.getStringArray(R.array.paintings)
val mutableArray = ArrayList(Arrays.asList(array))

// 执行操作
mutableArray.removeAt(2)

为什么你的原代码不生效?

resources.getStringArray()返回的是String[]类型,而ArrayList<String>是独立的集合类型,二者没有直接的赋值兼容关系,必须通过转换方法将数组转为可变集合类型才能进行增删操作。

内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:25:30