如何将int设置为textView内部

时间:2018-08-01 16:01:23

标签: java android firebase android-recyclerview android-viewholder

当我更改 productQuantity 字符串以整数应用崩溃时,我遇到了一个问题,但我无法理解该错误,但他将我引到了这里:

holder.quantity.setText(currentItem.getProductQuantity());

当我投射setText(currentItem.getProductQuantity())时不起作用

package com.original.original.original.admin;

public class ProductItem {
    String productName;
    String productCode;

    String productBuyPrice;
    String productSalePrice;
    int productQuantity;
    private String key;

    public ProductItem() {
    }

    public ProductItem(String productName, String productCode, String productBuyPrice, String productSalePrice, int productQuantity) {
        this.productName = productName;
        this.productCode = productCode;
        this.productBuyPrice = productBuyPrice;
        this.productSalePrice = productSalePrice;
        this.productQuantity = productQuantity;
    }

//    @Exclude
    public String getKey() {
        return key;
    }

//    @Exclude
    public void setKey(String key) {
        this.key = key;
    }

    public String getProductCode() {
        return productCode;
    }

    public String getProductName() {
        return productName;
    }

    public String getProductBuyPrice() {
        return productBuyPrice;
    }

    public String getProductSalePrice() {
        return productSalePrice;
    }

    public int getProductQuantity() {
        return productQuantity;
    }
}

和此onBindView方法

@Override
    public void onBindViewHolder(productViewHolder holder, int position) {
        ProductItem currentItem = items.get(position);

        holder.name.setText(currentItem.getProductName());
        holder.code.setText(currentItem.getProductCode());
        holder.buyPrice.setText(currentItem.getProductBuyPrice());
        holder.salePrice.setText(currentItem.getProductSalePrice());
        holder.quantity.setText(currentItem.getProductQuantity());


    }

4 个答案:

答案 0 :(得分:2)

尝试String.valueOf(YOUR_VALUE);

类似textView.setText(String.valueOf(7));

我想在你的情况下,

holder.quantity.setText(String.valueOf(currentItem.getProductQuantity()));

答案 1 :(得分:2)

From android documentation setText(int resid) 设置要使用字符串资源标识符显示的文本。

它崩溃是因为系统认为您正在调用textview.setText(int resId)方法,并尝试查找具有您作为整数传递给setText()的id的资源。

因此,您需要先将数字转换为字符串,然后再将其设置为textview。

答案 2 :(得分:2)

只需转换此行:

holder.quantity.setText(currentItem.getProductQuantity());

holder.quantity.setText(currentItem.getProductQuantity()+"");

它会起作用,但警告生产量应始终获得并返回整数,否则应用程序将崩溃

答案 3 :(得分:2)

如果您确定“ holder.quantity”和“ currentItem”不为空,请使用此代码

holder.quantity.setText(String.valueOf(currentItem.getProductQuantity()));