Valeu Galera!!
2012/8/3 Evandro Choma <evandrochoma@gmail.com>
Boa Tarde Marcelo
Você precisa criar uma classe que extende a EditText, e nela faz a máscara dai no XML vc utiliza a classe que criou e não o Edit Text, qualquer campo de máscara será assim.
Segue abaixo a classe que u utilizo aqui.
package br.com.afv.util;
import android.content.Context;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
import android.text.method.NumberKeyListener;
import android.util.AttributeSet;
import android.widget.EditText;
public class PhoneEditText extends EditText {
private boolean isUpdating;
private int positioning[] = { 1, 2, 3, 6, 7, 8, 9, 11, 12, 13, 14 };
public PhoneEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
public PhoneEditText(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public PhoneEditText(Context context) {
super(context);
initialize();
}
public String getCleanText() {
String text = PhoneEditText.this.getText().toString();
text.replaceAll("[^0-9]*", "");
return text;
}
private void initialize() {
final int maxNumberLength = 10;
this.setKeyListener(keylistenerNumber);
this.setText("( ) - ");
this.setSelection(1);
this.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
String current = s.toString();
if (isUpdating) {
isUpdating = false;
return;
}
String number = current.replaceAll("[^0-9]*", "");
if (number.length() > 10)
number = number.substring(0, 10);
int length = number.length();
String paddedNumber = padNumber(number, maxNumberLength);
String ddd = paddedNumber.substring(0, 2);
String part1 = paddedNumber.substring(2, 6);
String part2 = paddedNumber.substring(6, 10);
String phone = "(" + ddd + ") " + part1 + "-" + part2;
isUpdating = true;
PhoneEditText.this.setText(phone);
PhoneEditText.this.setSelection(positioning[length]);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
}
protected String padNumber(String number, int maxLength) {
String padded = new String(number);
for (int i = 0; i < maxLength - number.length(); i++)
padded += " ";
return padded;
}
private final KeylistenerNumber keylistenerNumber = new KeylistenerNumber();
private class KeylistenerNumber extends NumberKeyListener {
public int getInputType() {
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
}
@Override
protected char[] getAcceptedChars() {
return new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
}
}
}
Dai no XML eu uso assim
<br.com.afv.util.PhoneEditText
android:id="@+id/telefone"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="70"
android:inputType="number"
android:singleLine="true" />
Espero ter ajudado.
Abraços
--
[]´s
Evandro Choma
Engenheiro da ComputaçãoEm 3 de agosto de 2012 14:51, Ricardo Morais <ricardo.morais@gmail.com> escreveu:
http://oraculum.blog.br/blogoraculum/index.php/2011/08/28/mascara-de-telefone-br-para-campos-edittext-no-android/--
2012/8/3 Marcelo Alves <malves.info@gmail.com>Galera,Alguém teria um exemplo da utilização de mascara de telefone no EditText ?Obrigado,Marcelo Alves
Ricardo Morais
Flash Developer | .NET Developer






0 comentários:
Postar um comentário