Несоответствие типов. Обязательно: ContentResolver! Найдено: Int - PullRequest
0 голосов
/ 10 ноября 2018

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

override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
    val view : View = LayoutInflater.from(context).inflate(R.layout.row_layout,parent,false)

    val code = view.findViewById(R.id.code_id) as AppCompatTextView



    code.text = list[position].code

    if (code.equals("scheduled")) {
        getString(R.string.scheduled).toString(code)
    }




    return view as View
}

я получил ошибку

Type mismatch.
Required:
ContentResolver!
Found:
Int

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Часть проблемы заключается в том, что ваш стиль именования приводит к путанице.

В вашем if (code.equals("scheduled")) вы, вероятно, пытаетесь проверить значение свойства code элемента списка. Вместо этого происходит сравнение code [AppCompatText] View со строкой.

Это один из способов сделать это.

override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
    val view: View = LayoutInflater.from(context).inflate(R.layout.row_layout, parent, false)

    val codeView = view.findViewById<AppCompatTextView>(R.id.code_id)


    getItem(position)?.run {
        codeView.text = when (code) {
            "scheduled" -> context.getString(R.string.scheduled_text)
            else -> code
        }
    }
    return view
}

Это также второй раз, когда я видел, как кто-то раздувает макет в getView. Пожалуйста, прочитайте это:

https://developer.android.com/training/improving-layouts/smooth-scrolling#ViewHolder

Я расширил пример, который я разместил на GitHub (в ответ на другой вопрос), чтобы он также демонстрировал контекстный перевод.

0 голосов
/ 10 ноября 2018

его работает нормально на этом пути

  if (code.text == ("scheduled")) {
        code.setText(R.string.scheduled)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...