В представлении списка arrayadapters в моем классе адаптера я не могу получить список с помощью класса данных, а массив уже определен в основной деятельности

#kotlin #android-arrayadapter

Вопрос:

Ниже приведены мои занятия

DataEtc

 data class DataEtc(
    val names: String,
    val image: Int
)
 

MyEtcAdapter.kt

 class CustomAdapter(private val context: Activity, dataEtcs: Array<DataEtc>) : ArrayAdapter<DataEtc>(context, R.layout.show_list_etc, dataEtcs) {

  override fun getView(p0: Int, p1: View?, p2: ViewGroup): View {
    val inflater = context.layoutInflater
    val rowView = inflater.inflate(R.layout.show_list_etc, null, false)
    val titleText = rowView.findViewById(R.id.srctext) as TextView
    val imageView = rowView.findViewById(R.id.srcimage) as ImageView

    titleText.setText(DataEtc[p0].names)
    imageView.setImageResource(DataEtc[p0].image)


    return rowView
  }
}
 

При выполнении этого кода возникает следующая ошибка.

Классификатор «DataEtc» не имеет сопутствующего объекта и, следовательно, должен быть инициализирован здесь

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

1. Пожалуйста, добавьте, в чем проблема или есть ли какая-либо ошибка, которую вы получаете

2. Ошибка TitleText.setText(DataEtc[p0].имена) ImageView.setImageResource(DataEtc[p0].изображение) в этих 2 строках. Как я должен реализовать или вызвать свои переменные в адаптере массива, чтобы появился мой список. (я новичок в Android studio)

3. Но в чем ошибка, даже ваш вопрос или комментарий не помогают в понимании этого

4. Классификатор «DataEtc» не имеет сопутствующего объекта и, следовательно, должен быть инициализирован здесь. Это ошибка, которую я получаю.

Ответ №1:

Проблема с вашим кодом заключается в том, что вы используете DataEtc имя класса для доступа к элементу с индексом p0 вместо того, чтобы использовать dataEtcs[p0] имя массива