Saltar para conteúdo


Foto
- - - - -

Validar o texto enviado pelo utilizador numa EditText


  • Por favor inicie sessão para responder
2 respostas a este tópico

#1 PJFonseca

PJFonseca

    Mestre de Android

  • Former Staff
  • PipPipPipPipPipPip
  • 2562 mensagens
  • OnePlus 2

Mensagem publicada 15 November 2009 - 17:08

Olá meus caros,Já comecei a programar em Android, estou neste momento a fazer uma coisa básica, só para solidificar conhecimentos adquiridos e ao tentar melhorar um exemplo que estou a fazer já me surgiram duvidas. Elas são:Como podemos validar uma EditText, nas suas propriedades para que aceite apenas números, sejam eles decimais ou não?Como podemos fazer essa validação depois no código?Aqui vou por parte do código, para perceberem as perguntas, apenas estou a validar se o Y é maior que zero, mas e se forem letras? Eu não percebo como devo fazer.
Y= new Double(InputY.getText().toString());if(Y>0){ FAZ ALGO}


#2 PJFonseca

PJFonseca

    Mestre de Android

  • Former Staff
  • PipPipPipPipPipPip
  • 2562 mensagens
  • OnePlus 2

Mensagem publicada 16 November 2009 - 16:14

Obrigado cr3pek pela ajuda.Aqui vai a solução apresentada e resulta na perfeição.Existe uma coisa em java que se chama try, e tem este aspecto:
try {    <<Aqui colocamos o texto que queremos validar,      e se em alguma parte der erro,      ele passa para o catch>>} catch ( NumberFormatException e ) {          <<Verificamos se a excepção que deu é não      numérica e como tal, apresentamos algo,      como uma Toast Message ou assim>>}


#3 livestrong

livestrong

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 20 April 2010 - 09:24

Olá PJFonseca...Você pode fazer assim:EditText eValor = (EditText) findViewById(R.id.eValor); eValor.setKeyListener(DigitsKeyListener.getInstance(false,true));O último parâmetro (que na linha acima está true) indica se o número é decimal... se for inteiro então sete este valor para false.Desta forma você não precisa fazer a validação dentro de um bloco try catch. Outra vantagem é que no teclado virtual do usuário nem aparecerão as letras.A resposta está um "pouco atrasada", mas espero que ajude.Abraço.