|
Página 1 de 1
|
[ 6 Mensagens ] |
|
EditText personalizado para números com 2 digitos
| Autor |
Mensagem |
|
felipe.far
What is ADT?
Data de registro: 11 Mai 2010, 17:46 Mensagens: 29
|
 EditText personalizado para números com 2 digitos
Pessoal, fiz uma classe que recebe números decimais com no máximo 2 digitos!! Espero ajudar o pessoal que sofrer este problema... não sei se é a melhor solução, mas fica a dica! package br. tcc. minhasContas. edittext2; import java. util. StringTokenizer; import br. tcc. minhasContas. Inicio; import android. content. Context; import android. util. AttributeSet; import android. util. Log; import android. view. KeyEvent; import android. view. View; import android. view. View. OnKeyListener; import android. widget. EditText; public class EditText2D extends EditText implements OnKeyListener { public EditText2D (Context context, AttributeSet attrs, int defStyle ) { super(context, attrs, defStyle ); // TODO Auto-generated constructor stub this. setOnKeyListener(this); } public EditText2D (Context context, AttributeSet attrs ) { super(context, attrs ); // TODO Auto-generated constructor stub this. setOnKeyListener(this); } public EditText2D (Context context ) { super(context ); // TODO Auto-generated constructor stub this. setOnKeyListener(this); } @Override public boolean onKey (View v, int keyCode, KeyEvent keyevent ) { if (keyevent. getAction() == KeyEvent. ACTION_DOWN) { return false; } String valor = getText (). toString(). toLowerCase(); if (valor. contains(".")) { StringTokenizer aux = new StringTokenizer(valor, "."); String part1 = aux. nextToken(); if (aux. hasMoreTokens()) { String part2 = aux. nextToken(); if (part2. length() > 2) { setTextKeepState (part1 + "." + part2. substring(0, 2)); } } } return false; }} <br.tcc.minhasContas.edittext2.EditText2D android:id="@+id/campoValor" android:layout_width="fill_parent" android:layout_height="wrap_content" android:numeric="decimal" />
|
| 08 Abr 2011, 00:11 |
|
 |
|
lmc275
Anatomy of an App
Data de registro: 25 Nov 2011, 15:17 Mensagens: 158 Localização: Florianópolis
|
 Re: EditText personalizado para números com 2 digitos
desculpa a ignorância, mas como chamo este método? queria criar um para Data. dd/mm/yyyy vi na pagina http://groups.google.com/group/androidb ... 4f65e02f8dum mas não sei o que está acontecendo que quando faço um a primeira data ( data inicial ou final) funciona, dai chega na segunda e não mascara mais.... obrigado pela ajuda.
_________________ -- Att, Leandro
|
| 02 Fev 2012, 17:17 |
|
 |
|
felipe.far
What is ADT?
Data de registro: 11 Mai 2010, 17:46 Mensagens: 29
|
 Re: EditText personalizado para números com 2 digitos
Como chama qual método ? O método onKey é chamado pelo sistema depois que o usuário escreve alguma coisa, no caso você pode usar o debug para verificar o que está acontecendo. 
|
| 06 Fev 2012, 10:04 |
|
 |
|
AleSR
Android application
Data de registro: 14 Out 2011, 16:02 Mensagens: 88
|
 Re: EditText personalizado para números com 2 digitos
Muito Obrigada felipe.far! Eu realmente estava procurando algo desse tipo, só que não havia encontrado um exemplo que desse certo!  _____________________________________________________________________________ Imc275, eu testei a máscara do link que você passou e deu certo no meu projeto. Eu coloquei o seguinte código no onCreate: EditText dtIni = (EditText ) findViewById (R. id. dt_inicio); EditText dtEnd = (EditText ) findViewById (R. id. dt_termino); dtIni. setOnKeyListener(new DateTimeMask ()); dtEnd. setOnKeyListener(new DateTimeMask ()); } class DateTimeMask implements OnKeyListener { @Override public boolean onKey (View v, int keyCode, KeyEvent event ) { 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; } default: break; } } Selection. setSelection(ed. getText(), ed. getText(). toString() . length()); return false; } }Tirei a parte da máscara para hora (já que eu queria somente para data) e funcionou!
|
| 06 Fev 2012, 14:50 |
|
 |
|
lmc275
Anatomy of an App
Data de registro: 25 Nov 2011, 15:17 Mensagens: 158 Localização: Florianópolis
|
 Re: EditText personalizado para números com 2 digitos
Sim felipe.far, como eu passarei os parâmetros para estas classes? para que serve isso? "AttributeSet attrs"
AleSR, Oi tentei fazer isso mas não consegui, ficou iguai, quando rodo sempre consigo colocar um dos campos certos, no outro não formata. muito estranho...
_________________ -- Att, Leandro
|
| 08 Fev 2012, 14:25 |
|
 |
|
felipe.far
What is ADT?
Data de registro: 11 Mai 2010, 17:46 Mensagens: 29
|
 Re: EditText personalizado para números com 2 digitos
Esta classe que eu criei extends a EditText e você não precisa fazer nada no momento que o sistema constroi ele, simplesmente repassa para chamar o super e seta o onkeylistener(this) que é a classe que vc criou. Então como vc implementou onKeyListener, sempre que o usuário pressionar algum botão, o método onKey será chamado, Entendeu ??? Como eu a classe extend EditText, esta classe pai tem o método getText que representa o componente na tela então quando vc faz: String valor = getText (). toString(); Você recupera o valor que o cara digitou na tela, como eu quero só os digitos, quando o cara coloca 10,305 ele verifica que tem 3 digitos depois do ponto e remove o terceiro digito atualizando o valor da tela deste modo: setTextKeepState(part1 + "." + part2.substring(0, 2)); Conseguiu entender ?
|
| 09 Fev 2012, 07:31 |
|
|
|
Página 1 de 1
|
[ 6 Mensagens ] |
|
Quem está online |
Usuários vendo este fórum: alansousa, albinoneto, Alessandro Tavares, Alex Marcelo Burnett, alexandreizumi, alexvbh, alineri, aluclinux, anaguerra, andi, Andre, andrewort, Bitor, bomcabelo, brcamp, brenno, brian15, BTalhadas, btleandro, caciara, Cajux, Carlos, Carlos Alexandre, carlos.macleod, cassiano, cehills, celson, cenatech, Chewbacca, Christiane, CKorneLL, Clauber, claudio, cleiton_maciel, cosmotheoro, deborazb, diegorrborges, difrene, Douglas Siviotti, ederson_4, Eduardo, eferrari, emersonbarros, Faroli, Felipe Ferreira, FelipeOliveira, Filipe larizzatti, flashking, Flávio Robertgo, fraga, francismarconcini, free_w3000, freina, furlanrapha, gabrielpg, geco, germanno, GuilhermeZampieri, hellbest, Heritrix, hugomarinho, Igor_M, ismavolk, Juninhooooo, Katia, kecyobarros, Ki-Adi-Mundi, kleberperea, konos, kpinheiro, leandroviana, leoadias, Leonardo, LForce, Lindberg, loferreira, LordElfo, luizfilipe, marcelosv, marianatallas, Marini, marlovich, Michel, miguel, mikasjau, MSN NewsBlogs, mtomazzi, Mvitor, navegador, nishimura.ichigo, nivea, onaiggac, osternack, otpor, Paulo Bizzo, paulokiller, paulosantos, pemam.com.br, pmzara, pyrobit, r.wil, rafaelvital, rdchaves, regisjj, retardad0, rixargolo, ROGÉRIO RODRIGUES, romulotales, Shmi Skywalker, talves, thiago20, thiagoalgo, Vinicius, viniciusgoncalves, viniciusluiz, Wendel Carvalho, wender, wil, wingdoido, XPTO, YaCy, zeantonio, zorba e 1 visitante |
|
Você não pode criar novos tópicos neste fórum Você não pode responder tópicos neste fórum Você não pode editar suas mensagens neste fórum Você não pode excluir suas mensagens neste fórum Você não pode enviar anexos neste fórum
|
|