我想在用户向购物车添加内容时更改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();
}
});
}
答案 0 :(得分:3)
在这一行
double totalPrice = Double.parseDouble(totalPriceTV.toString());
将totalPriceTV.toString()
更改为totalPriceTV.getText().toString()
,然后重试。
答案 1 :(得分:2)
要更改Android中TextView
的文字,只需使用普通的geters和setter:
TextView.getText();
TextView.setText("text");
由于你处理数字,我建议你在解析double到string时使用DecimalFormat
。您可以轻松定义数字的格式(即逗号或分隔符后的位数)
DecimalFormat df = new DecimalFormat("###,###.00");
String price = df.parse(someDouble);
textView.setText(price);
对于这些数字:234123.2341234 12.341123
DecimalFormat
会给您以下结果:
234,123.23
和 12.34
答案 2 :(得分:1)
只需使用totalPriceTV.setText(“”+ totalPrice);
或
totalPriceTV.setText(将String.valueOf(totalPrice));
答案 3 :(得分:1)
摘自页面:http://developer.android.com/reference/android/view/View.html#toString()
在API级别1中添加 返回一个字符串,其中包含此对象的简洁,可读的描述。鼓励子类重写此方法并提供考虑对象类型和数据的实现。默认实现等效于以下表达式:
getClass().getName() + '@' + Integer.toHexString(hashCode())
因此,您应该使用getText();
即:
totalPriceTV.getText()