>
Boa Tarde Senhores!
Creio que a minha dúvida deve ser de muitas outras pessoas. Qual a melhor prática para se criar máscaras no Android? Pois encontrei vários códigos pronto na Internet, porém uns bem diferentes dos outros.
Exemplos de máscara:
Placa veículo - XXX-1234 (minha maior dificuldade).
CPF - RG - Telefone - CEP e por ai vai.
Desde já grato.
DEUS SEJA LOUVADO!
Olá Michael,
Segue um exemplo de uma classe desenvolvida.
Na prática, foi herdado de EditText e feito um novo "componente" a partir da classe.
Classe:
package br.com.rlsystem.clientes.views;
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
public class MyEditText extends android.widget.EditText {
public MyEditText(Context context) {
super(context);
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
this.setBackgroundColor(Color.RED);
this.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
return false;
} else {
String valor = ((MyEditText) v).getText().toString();
if (valor.length() == 2) {
((MyEditText) v).setText("("
((MyEditText) v).getText() ") ");
} else if (valor.length() == 9) {
((MyEditText) v).setText(((MyEditText) v).getText()
"-");
}
((MyEditText) v).setSelection(((MyEditText) v).getText()
.length());
return false;
}
}
});
}
public int getIntValue() {
return Integer.parseInt(this.getText().toString());
}
public String changePhone() {
String fone = this.getText().toString();
return "(" fone.substring(0, 2) ") " fone.substring(2, 10);
}
public String getStringValue() {
return this.getText().toString();
}
}
Segue o link de como aplicar o XML dessa classe:
http://rlsystem.com.br/forum/disco/uploads/3e2e591e76321a29dda63d7fe3804519-Exemplo-XML.txt
Grato Rafael!
Assim que eu implementar posto o resultado.
Abraço.
Rafael,
Não deu certo, somente o background foi aplicado sem a captura do evento para aplicação da mascara.