Страницы

Поиск по вопросам

среда, 4 марта 2020 г.

Модификация метода

#android #kotlin


Изначально у меня метод выглядит следующим образом:

override fun onListItemClick(itemIndex: Int, itemCode: String) {
    val data = adapter.getItem(itemIndex)
    if (data is TitleValueItem) {
        when (data.titleId) {
            R.string.v2_mobile_settings_language -> onLanguageClick()
        }
    }
}


теперь я его решил преобразовать таким образом:

override fun onListItemClick(itemIndex: Int, itemCode: String) {
    when(adapter.getItem(itemIndex) as? TitleValueItem? ?: return) {
        R.string.some -> onLanguageClick()
    }
}


И он мне ругается на строковый ресурс, что мол Int вместо TitleValueItem, не могу
понять, что я забыл дописать то .
    


Ответы

Ответ 1



Попробуйте следующим образом: override fun onListItemClick(itemIndex: Int, itemCode: String) { when ((adapter.getItem(itemIndex) as? TitleValueItem)?.titleId ?: return) { R.string.v2_mobile_settings_language -> onLanguageClick() } }

Ответ 2



Вот так попробуйте override fun onListItemClick(itemIndex: Int, itemCode: String) { when((adapter.getItem(itemIndex) as? TitleValueItem? ?: return).titleId) { R.string.some -> onLanguageClick() } }

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

Отправить комментарий