Загрузить класс модели в класс Kotlin - PullRequest
0 голосов
/ 02 мая 2019

У меня есть Java-реализация класса Model, загружаемого в Java-класс.Я преобразовал класс в Kotlin, но теперь получаю нереализованную ссылочную нагрузку

Я пробовал URlclassloader, но это создает еще больше ошибок

Реализация Java в recyclerview наBindViewHolder


    holder.decreaseButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if(AppDatastore.getPosData().get(position).getProductItemQuantity().equals("1")){

                        }else {

                            int count = 1;
                            count = Integer.parseInt(AppDatastore.getPosData().get(position).getProductItemQuantity());
                            long id = AppDatastore.getPosData().get(position).getId();
                            int sum = count - 1;
                            PosData posData = PosData.load(PosData.class, id);
                            posData.setProductItemQuantity(sum + "");
                            posData.save();
                        }

                        holder.integerNumber.setText(AppDatastore.getPosData().get(position).getProductItemQuantity());
                        ipassPos.passPos();

                    }
                });

Класс Kotlin

 holder.decreaseButton.setOnClickListener {
            if (AppDatastore.posData[position].productItemQuantity == "1") {

            } else {

                var count = 1
                count = Integer.parseInt(AppDatastore.posData[position].productItemQuantity)
                val id = AppDatastore.posData[position].id!!
                val sum = count - 1

          //error occurs here showing unresolved reference load

                val posData = PosData.load<PosData>(PosData::class.java, id)
                posData.productItemQuantity = sum.toString() + ""
                posData.save()
            }

            holder.integerNumber.setText(AppDatastore.posData[position].productItemQuantity)
            ipassPos.passPos()
        }

Класс PosData

@Table(name = "PosData")
class PosData : Model {


    @Column(name = "productItemId")
    var productItemId: String? = null
    @Column(name = "productItemName")
    var productItemName: String? = null
    @Column(name = "productItemQuantity")
    var productItemQuantity: String? = null
    @Column(name = "productItemKind")
    var productItemKind: String? = null
    @Column(name = "productItemUnitPrice")
    var productItemUnitPrice: String? = null
    @Column(name = "productItemImage")
    var productItemImage: String? = null

    constructor() : super() {}

    constructor(productItemId: String, productItemName: String, productItemQuantity: String, productItemKind: String, productItemUnitPrice: String, productItemImage: String) {
        this.productItemId = productItemId
        this.productItemName = productItemName
        this.productItemQuantity = productItemQuantity
        this.productItemKind = productItemKind
        this.productItemUnitPrice = productItemUnitPrice
        this.productItemImage = productItemImage
    }

    fun setPosData(productItemId: String, productItemName: String, productItemQuantity: String, productItemKind: String, productItemUnitPrice: String, productItemImage: String) {
        this.productItemId = productItemId
        this.productItemName = productItemName
        this.productItemQuantity = productItemQuantity
        this.productItemKind = productItemKind
        this.productItemUnitPrice = productItemUnitPrice
        this.productItemImage = productItemImage
    }

    fun posDataList(): List<PosData> {
        return getMany(PosData::class.java, "PosData")
    }
}

Есть ли способ для меня, чтобы сделать это в Kotlin, или даже лучший способ был бы очень полезным

1 Ответ

0 голосов
/ 02 мая 2019

Попробуй это.Я использую модель ниже класса: -

class AddAlertOverViewItem {

    @Expose
    @SerializedName("email")
    lateinit var email: String
    @Expose
    @SerializedName("alert_type")
    lateinit var alertType: String
    @Expose
    @SerializedName("alert_name")
    lateinit var alertName: String
    @Expose
    @SerializedName("sms")
    lateinit var sms: String
    @Expose
    @SerializedName("alert_id")
    lateinit var alertId: String
    @Expose
    @SerializedName("notification")
    lateinit var notification: String
}

В вашем классе адаптера.доступ осуществляется следующим образом.

addAlertOverViewItem.sms
addAlertOverViewItem.alertType
addAlertOverViewItem.notification
addAlertOverViewItem.alertName

Здесь addAlertOverViewItem - это объект класса вашей модели, а sms, alertType, etc. ключ вашей модели для доступа к значению этого ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...