我有一個EditText(接受0-9)與一個監聽器。我想在輸入時輸入它,應用一個計算,並將它顯示在同一個EditText框中。實時過濾輸入?
該框最初顯示$ 0.00。當用戶輸入2時,我想從盒子中抓取它,解析它以除去$和decimal,將其轉換爲int ...將其除以100,並將$放在它的前面。在setText之後,它應該顯示$ 0.02。如果他們然後按5,我會抓住它,解析它,結束了25,做數學,它應該顯示$ 0.25等。
我不知道這是最好的方式,我是接受新的想法。這裏是我當前的代碼:
mEditPrice.addTextChangedListener(new TextWatcher(){
DecimalFormat dec = new DecimalFormat("0.00");
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
String userInput = mEditPrice.getText().toString().replaceAll("[^\\d]", "");
int userInputInt = Integer.parseInt(userInput);
mEditPrice.setText("$"+dec.format(userInputInt/100));
}
作品完美,謝謝! – Roger 2011-02-25 15:54:33