Как изменить текст ячейки в GridView? Вобщем есть у меня GridView c айди gridView.Просто, при нажатии на элемент текст элемента должен заменяться на его координаты.Вот код
var data = MutableList(31, {x->"$x"})
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, data)
gridView.adapter = adapter
gridView.onItemClickListener = AdapterView.OnItemClickListener { p0, p1, p2, p3 ->
val COLUM_NUM = gridView.numColumns
var selectedItem = p0?.getItemAtPosition(p2).toString()
var col :Int= (selectedItem.toInt() % COLUM_NUM)+1
var row :Int= (selectedItem.toInt() / COLUM_NUM)+1
Toast.makeText(this@MainActivity, "$row,$col", Toast.LENGTH_SHORT).show() - Создал просто для проверки, всё работает.
}

17 Июл 2020 в 19:46
170 +1
0
Ответы
1

Чтобы изменить текст элемента в ячейке GridView при нажатии на неё, вам необходимо получить доступ к View этой ячейки и изменить текст в ней. В данном случае, вам нужно получить доступ к TextView элементу внутри ячейки и установить новый текст.

Вот как можно сделать это:

gridView.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
val textView = view as TextView
val COLUM_NUM = gridView.numColumns
val selectedItem = parent.getItemAtPosition(position).toString()
val col :Int = (selectedItem.toInt() % COLUM_NUM) + 1
val row :Int = (selectedItem.toInt() / COLUM_NUM) + 1
textView.text = "$row,$col"
// Можно также показать Toast сообщение с новыми координатами
Toast.makeText(this@MainActivity, "$row,$col", Toast.LENGTH_SHORT).show()
}

Этот код будет изменять текст внутри TextView элемента в ячейке GridView на координаты этой ячейки при нажатии на неё.

18 Апр 2024 в 10:45
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир