Вот моя функция:
fun setSingleChoiceItems(items: Array<CharSequence>?, checkedItem: Int,
listener: DialogInterface.OnClickListener?) {
// ...
}
Я пытался вызвать его с помощью массива строк (преобразованного из списка):
val str = listOf("1", "2", "3")
dialog.setSingleChoiceItems(str.toTypedArray(), currentChoice, null)
Моя среда IDE не выдает ошибок или предупреждений, но я столкнулся с ошибка компиляции: None of the following functions can be called with the arguments supplied
.
Я попытался добавить вспомогательную функцию для принятия массива String:
fun setSingleChoiceItems(items: Array<String>?, checkedItem: Int,
listener: DialogInterface.OnClickListener?) {
// Here's a warning: No cast needed
val cs = items?.map { it as CharSequence }?.toTypedArray()
setSingleChoiceItems(cs,checkedItem,listener)
}
Теперь он может успешно скомпилироваться, но я столкнулся с ошибкой IDE: Overload resolution ambiguity. All these functions match.
Кажется, что единственный правильный способ - явное преобразование при вызове - без удобства метода. Очевидно, это очень хлопотно.
Так, как лучше всего решить эту проблему?