首页 > 解决方案 > 我想做一些计算并将值传递给另一个 Activity 上的 TextView

问题描述

我想将其中一个 TextViews 的值乘以 100,将其发送到 Model 类并在另一个活动的 TextView 上显示它。

我试过这个但没有用。我收到这个错误

android.content.res.Resources$NotFoundException

    private void getProductDetails(String productID)
{
    DatabaseReference productRef = FirebaseDatabase.getInstance().getReference().child("Products");
    productRef.child(productID).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot)
        {
            if(dataSnapshot.exists())
            {
                Products products = dataSnapshot.getValue(Products.class);

                productName.setText(products.getPname());
                productPrice.setText(Integer.valueOf(products.getPrice()) * 100);
                productDescription.setText(products.getDescription());
                Picasso.get().load(products.getImage()).into(productImage);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

在此处输入图像描述

标签: javaandroidfirebase

解决方案


当您尝试将 Interger 放入 textview 文本时,通常会发生这种问题。

像这样的东西:

final String valueStr = textview.getText().toString(); // valueStr = 1
int value = Interger.parseInt(valueStr)
textview.setText(value + 100)

它不会将文本设置为 101,而是尝试在 R 表中查找 101 的值,因为您将 Int 值传递给 setText。只需检查您的 setText,您可能会发现一个带有 int 值而不是字符串的

您的问题出在这一行:

productPrice.setText(Integer.valueOf(products.getPrice()) * 100);

尝试这个:

productPrice.setText(Integer.valueOf(products.getPrice()) * 100 + "");

推荐阅读