#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]
имя массива