java - 我想做一些计算并将值传递给另一个 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) {
}
});
}
解决方案
当您尝试将 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 + "");
推荐阅读
- php - Visual Studio Code 和 Laravel 命令
- r - flextable:set_header_df 导致 R 会话崩溃
- git - 在 Git repo(不是 github)上使用 SVN 客户端
- node.js - 从 FTP 下载并直接将其复制到 Azure Blob/Amazon S3 中,而无需将其存储在 Node.js 中的本地系统中
- ios - SwiftUI:动态“列表”中的“切换”在重用时破坏了它们的布局?
- unit-testing - 使用 Mockito 模拟挂起函数返回 null
- c++ - 为什么这个示例 C++ 代码片段中的第一个参数是对象,而不是对象的内存地址?
- c++ - Cin 和 getline 不会正确保存非 ascii 字符
- html - 如何将图像放在容器的顶部中心
- javascript - 空字符串是有效的 JSON 键吗?