我想在用户将内容添加到购物车时更改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.2312.34

关于java - 在Android中更改TextView的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25614983/

10-10 15:52