Mega Code Archive

 
Categories / Android / UI
 

Convert input value to Currency in TextWatcher

package app.test; import java.text.NumberFormat; import android.text.Editable; import android.text.TextWatcher; import android.app.Activity; import android.os.Bundle; import android.widget.EditText; public class Test extends Activity  {     EditText text;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         text = new EditText(this);         text.addTextChangedListener(new CurrencyTextWatcher());         setContentView(text);     } } class CurrencyTextWatcher implements TextWatcher {     boolean mEditing;     public CurrencyTextWatcher() {         mEditing = false;     }     public synchronized void afterTextChanged(Editable s) {         if(!mEditing) {             mEditing = true;             String digits = s.toString().replaceAll("\\D", "");             NumberFormat nf = NumberFormat.getCurrencyInstance();             try{                 String formatted = nf.format(Double.parseDouble(digits)/100);                 s.replace(0, s.length(), formatted);             } catch (NumberFormatException nfe) {                 s.clear();             }             mEditing = false;         }     }     public void beforeTextChanged(CharSequence s, int start, int count, int after) { }     public void onTextChanged(CharSequence s, int start, int before, int count) { } }