android - Kotlin:将地图的键集转换为字符串数组
问题描述
我正在尝试设置 Spinner 下拉菜单的选项,这需要将选项数组作为最后一个参数。但是,当我运行我的代码时,我收到以下错误:
java.util.HashMap$KeySet 不能转换为 java.lang.String[]
下面是我的代码:
var ringtoneNamesToURIs: MutableMap<String, String> = getRingtoneList()
var ringtoneNames: Array<String> = ringtoneNamesToURIs.keys as Array<String>
val ringtoneSpinner = root.findViewById(R.id.ringtoneSpinner) as Spinner
val ringtoneDropdown: ArrayAdapter<String>? = context?.let {
ArrayAdapter<String>(
it,
android.R.layout.simple_spinner_item,
ringtoneNames
)
}
解决方案
映射中的键保存在 Set 中,而不是数组中。所以你不能随便投。您必须将键设置为数组。
val ringtoneNames:Array<String> = ringtoneNamesToURIs.keys.toTypedArray()
推荐阅读
- python - 我应该如何编写记录器代理?
- spring - 字符串索引超出范围:当存储过程在 Spring Boot 中返回空值时为 0
- restlet - Restlet 仍然是一个可行的 Java 框架吗?
- r - 从 r 中的循环中自定义绘图的标题
- python - 我们可以在 Python 循环中执行反向串联吗?
- linux - 启用 EAP 的 NetworkManager-pptp SSTP VPN 访问?
- linux - 这如何计算文件中的行数?no_of_lines=`<$file wc -l`
- javascript - 如何为粒子添加径向渐变效果?
- python - python不能默认替换'\n'吗?
- sql - 将 DB 结果扫描到嵌套结构数组中