在 textwatcher 中的多个 edittext 中,如果添加了一些值,它会很好地工作。现在,如果我从其中一个中删除某些内容,它就会崩溃。
在TextWatcher 中的Multiple EditText 中,当有一些附加值时它运行良好。
如果我不删除它们中的任何一个,那么它就可以正常工作。
请解释我哪里出错了。
private final TextWatcher rateValue = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
public void afterTextChanged(Editable s) {
String rate = item_sale_rate.getText().toString();
Double sellRateInNo = Double.valueOf(rate); // String to Integer
s_mrp_value.setText(item_sale_rate.getText());
s_rate_value.setText(item_sale_rate.getText());
}
};
private final TextWatcher discountValue = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
public void afterTextChanged(Editable s) {
String rate = item_sale_rate.getText().toString();
String discount = item_sale_discount.getText().toString();
int sellRateInNo = Integer.valueOf(rate); // String to Integer
int sellDisInNo = Integer.valueOf(discount); // String to Integer
s_rate_value.setText(item_sale_rate.getText().toString()); // at is String
s_discount_value.setText(item_sale_discount.getText().toString()); // at is String
int taxableInNo = sellRateInNo - sellDisInNo; // calculation
s_taxable_value.setText(String.valueOf(taxableInNo)); // Integer to String
}
};
private final TextWatcher taxValue = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
public void afterTextChanged(Editable s) {
String rate = item_sale_rate.getText().toString();
String discount = item_sale_discount.getText().toString();
String tax = item_sale_tax.getText().toString();
int sellRateInNo = Integer.valueOf(rate); // String to Integer
int sellDisInNo = Integer.valueOf(discount); // String to Integer
int sellTaxInNo = Integer.valueOf(tax); // String to Integer
s_rate_value.setText(item_sale_rate.getText().toString()); // at is String
s_discount_value.setText(item_sale_discount.getText().toString()); // at is String
int taxableInNo = sellRateInNo - sellDisInNo; // calculation
s_taxable_value.setText(String.valueOf(taxableInNo)); // Integer to String
s_total_value.setText(String.valueOf(priceInNo));
}
};
由于您尚未发布任何日志,我猜您可能需要在尝试将其转换为 Double 或 Int 之前检查每个字符串是否为 null 或为空(基本上您的字符串是 ""):
if(str != null && !str.isEmpty()) {
/* code */
}
例子
Double sellRateInNo = 0;
String rate = item_sale_rate.getText().toString();
If (rate != null && !rate.isEmpty()) {
sellRateInNo = Double.valueOf(rate);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句