我已经实现了一个视图,其中EditText根据按下的按钮添加和删除。我也使用TextWatcher将数字转换为金钱格式。一切工作正常,直到这里。EditText,TextWatcher帮助,继续获取前一个字符串
我的问题是当用户输入到第一个EditText并按下添加按钮。然后,当用户输入到第二个EditText时,输入将与第一个EditText字符串连接,并显示在第二个EditText中,同时也将第一个EditText连接起来。所以基本上两个EditTexts都以相同的字符串结尾。 这里是我的代码:
amount = new EditText(this);
RelativeLayout.LayoutParams etLParams = new RelativeLayout.LayoutParams(
400, LayoutParams.WRAP_CONTENT);
etLParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
amount.setInputType(InputType.TYPE_CLASS_NUMBER);
amount.setLayoutParams(etLParams);
amount.setId(AMOUNT);
amount.setSingleLine();
amount.requestFocus();
amount.setCursorVisible(true);
amount.setGravity(Gravity.RIGHT);
amount.addTextChangedListener(new TextWatcher(){
String price="";
private EditText newAmount = new EditText(DutchPayActivity.this);
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if(!s.toString().equals(price)){
String cleanString = s.toString().replaceAll("[$,.]", "");
long parsed = Long.parseLong(cleanString);
NumberFormat nf = NumberFormat.getInstance();
price = nf.format(parsed);
s.append(price); //gave me error:java.lang.NumberFormatException: 66666666666666666666666666666666
newAmount.setText(price); //same result as before..
newAmount.setSelection(price.length());
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
});
我试过onTextChanged()和实现我的自定义类等,但就是无法得到它的工作。
请让您的标题更有建设性 – Ben 2012-03-07 08:38:22
*“认真地说我对此感到厌恶” - - 我也是。没有人阅读[常问问题](http://stackoverflow.com/faq)如何在这里问一个适当的问题了。 – 2012-03-07 08:38:58
其他EditText在哪里? – 2012-03-07 08:39:28