Как я могу перебрать базовый адаптер gridView, чтобы проверить текст на нем?

Я пробовал разные способы, я застрял, пытаясь сделать это в течение нескольких недель. Я также пытался добавить код в адаптер, я думал об использовании sqlite, но я просто не могу понять, как это сделать.

Я просто хочу проверить условие, если эта строка существует где-то в gridview, логическое значение = истина

Могу ли я сделать что-то подобное в действии?

        for (i in 0 until arrayList!!.size){
        WordViewAdapter(this,arrayList).getView(i, convertView = null, parent = null).word.text
    }
}

Это мой вид сетки:

enter image description here

Это мой адаптер:

private lateinit var mTTS : TextToSpeech
class WordViewAdapter(var ctx: Context, var array: ArrayList<Word_Item>?) : BaseAdapter() {
    override fun getCount(): Int {
        return array!!.size
    }

    override fun getItem(position: Int): Any {
        return array!![position]
    }
    override fun getItemId(position: Int): Long {
        return position.toLong()
    }
    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        var view : View = View.inflate(ctx, R.layout.grid_item_list,null)
        var word:TextView = view.findViewById(R.id.tx_word)
        var translation:TextView = view.findViewById(R.id.tx_transl)
        var wordItem : Word_Item = array!![position]
        word.text = wordItem.word
        translation.text = wordItem.transl
        Translate(ctx).question(word,translation)

        view.setOnClickListener{
            mTTS = TextToSpeech(ctx, TextToSpeech.OnInitListener { status ->
                if (status != TextToSpeech.ERROR){
                    mTTS.setLanguage(Locale.US)
                    mTTS.setSpeechRate(0.7F)
                    mTTS.setPitch(0.7F)
                    mTTS.speak(word.text.toString(),TextToSpeech.QUEUE_FLUSH,null,null)
                }
            })
        }
        return view
    }
}
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
14
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ну, ребята, я сделал это. И выложу сюда, может кому поможет.

Я создал еще один список:

var faladas = mutableListOf<String>()

И функция, которая проверяет, равны ли они, например, если все в порядке, то отправляет адаптер и обновляет его:

   private fun checkPalavra(str: String) {
        var flip : Boolean = str.lowercase().trim().contains(binding.txPronunciar.text.toString().lowercase().trim().replace("!","").replace(".","").replace("?","").replace(",","") )
        if (flip){
            faladas.add(str.lowercase())
            wordAdapter?.notifyDataSetChanged()
            gridView?.invalidateViews()
            gridView?.adapter = WordViewAdapter(this,arrayList,faladas)...

В адаптере я просто добавляю:

  for (i in 0 until faladas.size){
        if (faladas[i].lowercase() == word.text.toString().lowercase()){
            view.setBackgroundColor(ctx.resources.getColor(R.color.green))
        }
    }

Другие вопросы по теме