Anko DSL с ArrayAdapter

сегодня я работаю над переводом одного из моих приложений на чистую сборку kotlin в качестве теста. В настоящее время я борюсь с адаптерами массивов и получаю эту ошибку.

File from xml type layout resource ID #0x7f0c000a 

Это моя деятельность, у которой есть ошибка.

 class KotlinTest : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val arr = Array(5, Int::toString) verticalLayout { id = R.id.test_text_layout textView { width = matchParent height = matchParent id = R.id.test_text_item } listView { id = R.id.test_text_view } } val cardAdapter: ArrayAdapter<String>? = ArrayAdapter(ctx, R.id.test_text_layout, arr) val tempView: ListView = findViewById(R.id.test_text_view) as ListView tempView.adapter = cardAdapter cardAdapter?.notifyDataSetChanged() } } 

И это файл ids.xml.

 <?xml version="1.0" encoding="utf-8"?> <resources> <item name="test_text_item" type="id"/> <item name="test_text_view" type="id"/> <item name="test_text_layout" type="id"/> </resources> 

Я пробовал несколько вещей, но не повезло, поэтому любое руководство было бы оценено. Я предполагаю, что я просто пропустил что-то немое.

Удалить эту строку <item name="test_text_layout" type="id"/>

Создайте файл в каталоге res/layout dir, назовите его test_text_layout.xml и добавьте следующий контент

 <?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"/> 

В коде действий

 val cardAdapter = ArrayAdapter(ctx, R.layout.test_text_layout, arr) 

Причина проблемы – вы передали неправильный параметр. Из документации

resource int: Идентификатор ресурса для файла макета, содержащего TextView для использования при создании экземпляров.

Если вы хотите полностью избавиться от xml, вам необходимо расширить ArrayAdapter