Esses links podem ajudar a simplificar:
Em 25 de abril de 2012 16:31, Felipe Aron <felipearon@gmail.com> escreveu:
Fala ai Maicon blz?!Cara valeu pela dica. Vou tratar aqui no projeto... mas cara, que "pé no saco" isso ein... deveria ter algo simples pra tratamento né?! :DValeu amigo.Em 25 de abril de 2012 15:43, Maicon Strey <mstrey@gmail.com> escreveu:
Segue como eu resolvi:Se alguém tiver uma forma mais fácil manda ai.Pode ser uma grande gambiarra mas funciona.**********private String current = "";txtPreco.addTextChangedListener(new TextWatcher() {public void afterTextChanged(Editable s) {// TODO Auto-generated method stub}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) {if(!s.toString().equals(current)){txtPreco.removeTextChangedListener(this);String precoString = s.toString().replaceAll("[R$.]", "");precoString = precoString.replaceAll(",", ".");Double precoDouble = 0.0;if (s.length() > current.length()){precoDouble = Double.valueOf(precoString);precoDouble = precoDouble * 10;}if (s.length() < current.length()){precoDouble = Double.valueOf(precoString);precoDouble = precoDouble / 10;}precoString = precoDouble.toString();NumberFormat formatoReal = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));String formatado = formatoReal.format(Double.valueOf(precoString));txtPreco.setText(formatado);current = formatado;txtPreco.setText(formatado);txtPreco.setSelection(formatado.length());txtPreco.addTextChangedListener(this);}}});**********Pra voltar pro formato Double:**********String precoDouble = txtPreco.getText().toString().replaceAll("[R$.]", "");precoDouble = precoDouble.replaceAll(",", ".");NumberFormat formatoDouble = NumberFormat.getNumberInstance(new Locale("en", "US"));String formatado = formatoDouble.format(Double.valueOf(precoDouble)).replaceAll(",", "");**********Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
http://maicon.strey.nom.br/blog/
http://maicon.strey.nom.br/blog/netiqueta/
Linux user: #525086------------------
On Wed, Apr 25, 2012 at 13:16, Felipe Aron <felipearon@gmail.com> wrote:
Galera, tenho um EditText com a seguinte estrutura:<EditTextandroid:id="@+recto_financeiro/edtPagoAVista"android:layout_width="160dp"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_below="@+recto_financeiro/tvDeveValor"android:inputType="numberDecimal"android:digits="0123456789.,"android:layout_marginRight="4dp" />Estou querendo aplicar uma máscara monetária, para o valor 1250.00 ficar 1.250,00. (Trocar ponto por virgula)Até onde entendi preciso criar um TextWatcher para isso, mas não faço ideia de como adicionar tal máscara.Outra questão é, como tratar o valor real para cálculos? O valor apresentado ficará 1.250,00 - porém para efeito de calculo deve pegar 1250.00. Como fazer isso?Agradeço a ajuda desde já.--Analista-Programador






0 comentários:
Postar um comentário