我想在用户将内容添加到购物车时更改TextView。初始值为0.00,并且随着用户添加项目,该值也将添加到该值。我有一个AlertDialog,单击一个允许用户选择项目的按钮时会弹出。
我的问题是java.lang.StringToReal.invalidReal错误。我认为我可能无法正确获得TextVeiw的价值,但不能完全确定。
多亏有人在看这个。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(R.string.pickItem);
builder.setItems(R.array.items, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
CartItems ci = new CartItems();
ci.setItem(which);
ci.setPrice(which);
cart.add(ci);
totalPriceTV = (TextView)findViewById(R.id.textView2);
double totalPrice = Double.parseDouble(totalPriceTV.toString());
totalPrice += ci.getPrice();
String newTotal = new Double(totalPrice).toString();
totalPriceTV.setText(newTotal);
}
});
builder.create();
builder.show();
}
});
}
最佳答案
为了在Android中更改TextView
的文本,只需使用普通的获取器和设置器:
TextView.getText();
TextView.setText("text");
由于您处理数字,因此我建议您在将双精度字符串解析为字符串时使用
DecimalFormat
。您可以轻松定义数字的格式(即逗号后的位数或分隔符)DecimalFormat df = new DecimalFormat("###,###.00");
String price = df.parse(someDouble);
textView.setText(price);
对于这些数字:
234123.2341234 12.341123
DecimalFormat
将为您提供以下结果:234,123.23
和12.34
关于java - 在Android中更改TextView的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25614983/