`использовать’; ‘для разделения выражений в одной строке` при создании intArray

#kotlin

#kotlin

Вопрос:

Я пытаюсь создать IntArray , который определен как встроенный в качестве аргумента конструктора, например:

  adapter = SimpleAdapter(this, mylist, R.layout.activity_dashboard,
     listOf<String>("judul","Keterangan","Gambar").toTypedArray(), IntArray(){R.id.txtJudul,(R.id.txt_keterangan),(R.id.img)}
 )
  

Но я получаю эту ошибку:

 use ';' to sparate expressions on the same line
  

Проблема заключается в первой запятой в IntArray(){R.id.txtJudul,(R.id.txt_keterangan),(R.id.img)}

Как мне создать встроенный intArray без получения этой ошибки?

Комментарии:

1.Используйте intArrayOf intArrayOf(R.id.txtJudul, R.id.txt_keterangan, R.id.img)

2. Комментарии @Ani не должны использоваться для предоставления рекомендаций по разрешению — для этого и нужны ответы. Если вы не хотели писать ответ, потому что чувствовали, что этот вопрос является дубликатом, пожалуйста, найдите дубликат для закрытия вместо того, чтобы комментировать решение. Ответы, размещенные в виде комментариев, могут привести к оставлению вопросов, что не очень хорошо для добровольцев, которые на самом деле публикуют ответы, а затем не удостаиваются зеленой галочки. meta.stackexchange.com/q/230676/352329

Ответ №1:

Конструктор for IntArray так не работает — он принимает длину и функцию инициализатора, которая принимает индекс и возвращает значение по этому индексу. Однако это слишком сложно для этого.

Для создания IntArray строки с вашим кодом просто используйте intArrayOf функцию верхнего уровня (вы также можете удалить лишние круглые скобки из вашего кода) вместо IntArray(){ ... } :

 intArrayOf(R.id.txtJudul, R.id.txt_keterangan, R.id.img)