Конфликт модификатора видимости в объявлении интерфейса в Kotlin

У меня есть простое представление ресайклера, в котором у меня есть интерфейс внутри тела, и я объявил интерфейс в параметре конструктора, поэтому я могу получить к нему доступ в теле представления ресайклера. Но он показывает ошибку как

Conflicting declarations: public interface CardClickListener, private final val CardClickListener: MemoryBoardAdapter.CardClickListener

Я попытался изменить модификаторы видимости, но ошибка все еще сохраняется. ** Мой код:**

Просмотр Recycler с интерфейсом:

class MemoryBoardAdapter(   private val CardClickListener: CardClickListener ) :     RecyclerView.Adapter<MemoryBoardAdapter.ViewHolder>() { 

interface CardClickListener{     

    fun onCardClicked(position: Int) 

    } }

Объект MainActivity, вызывающий recyclerView:

binding.rvBoard.adapter = MemoryBoardAdapter(object: MemoryBoardAdapter.CardClickListener{override fun onCardClicked(position: Int) {// TODO}

        })

Я попытался перейти с частного val на внутренний var, но ошибка все еще сохраняется. если я удалю модификатор видимости в конструкторе класса, ошибка исчезнет, ​​но я не могу получить доступ к интерфейсу внутри тела класса.

используйте camelCase для имени вашей переменной (или просто не то же имя, что и ваш статический вложенный интерфейс).

Mark 22.03.2022 13:51

@Mark Да, это решено. Спасибо за ваше время. Извините за глупую ошибку.

Kishore kichu 22.03.2022 13:58
0
2
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Заглавная C для CardClickListener в object: MemoryBoardAdapter.CardClickListener конфликтует с именем интерфейса CardClickListener внутри вашего адаптера. Измените имя параметра или используйте картаClickListener

class MemoryBoardAdapter(private val cardClickListener: CardClickListener ) 

вместо

class MemoryBoardAdapter(private val CardClickListener: CardClickListener ) 

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