[Android Dev] - Criando mascara para EditText.

3,321 views
Skip to first unread message

Deivison Servat Sporteman

unread,
Apr 16, 2011, 7:40:42 PM4/16/11
to androidb...@googlegroups.com
Boa noite galera,
Tive que criar uma mascara em tempo de execução para um campo... uma mascara Datetime. ( dd/mm/yyyy HH24:mi ).  Não sei se fiz da melhor forma... mas segue abaixo o código que fiz...pode ajudar alguém ..ou virar um post em algum blog^^.

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.routes_activity);

EditText dtIni = (EditText) findViewById(R.id.txtDtIni);

EditText dtEnd = (EditText) findViewById(R.id.txtDtEnd);

dtIni.setOnKeyListener(new DateTimeMask());

dtEnd.setOnKeyListener(new DateTimeMask());

}


class DateTimeMask implements OnKeyListener {


@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

Log.i("TIME", "keyCode:" + keyCode);

EditText ed = (EditText) v;

if (event.getAction() == KeyEvent.ACTION_UP

&& keyCode != KeyEvent.KEYCODE_DEL) {

int length = ed.getText().toString().length();

switch (length) {

case 2: {

ed.setTextKeepState(ed.getText() + "/");

break;

}

case 5: {

ed.setTextKeepState(ed.getText() + "/");

break;

}

case 10:{

ed.setTextKeepState(ed.getText() + " ");

break;

}

case 13:{

ed.setTextKeepState(ed.getText() + ":");

break;

}

default:

break;

}

}

                        //Posiciona o cursor no fim

Selection.setSelection(ed.getText(), ed.getText().toString()

.length());

return false;

}


}



Abraços,

Atenciosamente,


--

Deivison Servat Sporteman

Deivison Servat Sporteman

unread,
Apr 16, 2011, 7:44:26 PM4/16/11
to androidb...@googlegroups.com

ed.setSelection(ed.getText().toString().length()); <- Melhoria para posicionar o cursor.

Felipe Alexandre Rodrigues

unread,
Apr 18, 2011, 8:02:10 AM4/18/11
to androidb...@googlegroups.com
segue o meu pra números decimais



--
Felipe Alexandre Rodrigues
(11) 8526-3566

Wellington Gonçalves de Sousa

unread,
Nov 27, 2013, 6:37:08 AM11/27/13
to androidb...@googlegroups.com
Olá Deivson,
 
 
tentei usar o seu código, mas não está funcionando, quando digito no campo não faz nada, verifiquei um Log que você colocou na classe e quando digito um numero não sai nada, somente Loga quando eu apago com BackSpace ai ele mostra KEYCODE=67.
É preciso habilitar algo no EditText para funcionar? O que pode estar faltando? estou usando a versão 4 pode ser isso?

Ademar Alves de Oliveira

unread,
Jun 27, 2014, 12:42:18 PM6/27/14
to androidb...@googlegroups.com
Uses ed.getText().length() instead ed.getText().toString().length()

Geovani de Souza

unread,
Jun 27, 2014, 12:58:34 PM6/27/14
to androidb...@googlegroups.com
Não complique o que pode ser simples: https://github.com/derekbrameyer/android-betterpickers

Ernani Joppert Pontes Martins

unread,
Jun 27, 2014, 1:05:43 PM6/27/14
to Grupo de Desenvolvimento Android
Pena que pede API 14, mas, interessante esta lib!

Valeu por compartilhar, não a conhecia!

Abraço,

Ernani
> --
> You received this message because you are subscribed to the Google Groups
> "Android Brasil - Dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to androidbrasil-...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages