Как установить идентификатор для EpoxyModelWithHolder? - PullRequest
0 голосов
/ 31 января 2020

Я сейчас добавляю с помощью Epoxy 3.9.0 (впервые использую его) и создаю EpoxyModelWithHolder.

Я устанавливаю идентификатор и все еще получаю: «Вы должны установить идентификатор для модели, прежде чем добавить его».

ModelClass

abstract class PlayerModel: EpoxyModelWithHolder<PlayerModel.PlayerHolder>() {

    @EpoxyAttribute
    var id : Long = 0

    @EpoxyAttribute
    @DrawableRes
    var image : Int = 0

    @EpoxyAttribute
    var injured : Boolean = false

    @EpoxyAttribute
    var name : String = ""

    @EpoxyAttribute
    var position : String = ""
    // Busniess Logic

Контроллер

class PlayerController : EpoxyController() {

    var playerItems : List<Player> = PlayerDataFactory.getPlayerItems()

    override fun buildModels() {
        var i : Long = 0

        playerItems.forEach { player ->
            PlayerModel_()
                .id(i++)
                .image(player.image)
                .injured(player.injured)
                .name(player.name)
                .position(player.position)
                .addTo(this)
        }
    }
}

Класс данных

data class Player(val image: Int = -1, val injured: Boolean, val name: String, val position: String)

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 28 апреля 2020

Просто удалите var id : Long = 0 из PlayerModel класса и перестройте,

(функция PlayerModel_ id(long id) автоматически генерируется эпоксидной смолой.)

...