文本观察器中的多个编辑文本
multiple edittext in textwatcher
在 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 或 empty(基本上您的字符串是“”):
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);
}
在 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 或 empty(基本上您的字符串是“”):
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);
}