Android

Android
Android Development

domingo, 13 de maio de 2012

Caderneta de Saude 2

Não tinha ainda comentado no blog, mas a aplicação da Caderneta de Saude ficou pronta e já está disponível. É a minha primeira aplicação paga disponibilizada, mas tá bem baratinho... 1 dolar. Criei tb uma aplicação trial gratuita por 30 dias para quem quiser testar a aplicação. Tem todas as funcionalidades disponíveis.
Quem tiver interesse pode baixar do Google Play.
 https://play.google.com/store/apps/developer?id=Ricardo+Moura

Tem muita gente de outros países que tem baixado a aplicação. Em breve vou traduzir para o inglês tb.


domingo, 29 de janeiro de 2012

Valor Default para EditText

Mais uma dica importante... é uma coisa simples, mas que estava me dando um trabalhão para implementar.
A dica aqui é de como colocar um valor default em um EditText de forma a mostrar para o usuário que tipo de informação ele precisa preencher. Estava fazendo tudo na mão, colocando um valor default no atributo android:text e mudando até a cor inicial. Depois estava tendo que implementar diversos eventos e ficar comparando o valor atual com o valor colocado inicialmente.
Bom... mudei tudo quando descobri o atributo android:hint. Já faz tudo isso "automagicamente"...

sábado, 28 de janeiro de 2012

Colocando um divisor horizontal em um formulário

É coisa simples, mas é bastante útil. Querendo adicionar uma linha divisória de campos em um formulário ou algum layout qualquer, basta adicionar o seguinte código no xml de layout


<View      android:id="@+id/Divisor1"
                android:layout_width="fill_parent"
                android:layout_height="2dip"
                android:background="#A8A8A8" />

Escolha a cor preferida e a largura da divisória e pronto.

segunda-feira, 13 de dezembro de 2010

Validação no Android

Hoje percebi que validação de campos de formulário não é o forte do Android. Não encontrei muita coisa pronta então precisei fazer na mão. Nada muito trabalhoso, mas quem está acostumado a usar um framework como o struts ou spring vai perceber o que estou querendo dizer...
No fim criei uma classe com alguns métodos estáticos... pode ser que resolva criar algo mais robusto, mas por enquanto tá valendo...


import java.text.ParseException;
import java.text.SimpleDateFormat;

import android.text.Editable;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;

public class Validator {

public static boolean validateNotNull(View pView, String pMessage) {
if (pView instanceof EditText) {
EditText edText = (EditText) pView;
Editable text = edText.getText();
if (text != null) {
String strText = text.toString();
if (!TextUtils.isEmpty(strText)) {
return true;
}
}
// em qualquer outra condição é gerado um erro
edText.setError(pMessage);
edText.setFocusable(true);
edText.requestFocus();
return false;
}
return false;
}

public static boolean validateDateFormat(View pView, String pDateFormat,
String pMessage) {
if (pView instanceof EditText) {
EditText edText = (EditText) pView;
Editable text = edText.getText();
if (text != null) {
String strText = text.toString();
if (!TextUtils.isEmpty(strText)) {
SimpleDateFormat format = new SimpleDateFormat(pDateFormat);
try {
format.parse(strText);
return true;
} catch (ParseException pe) {

}
}
}
// em qualquer outra condição é gerado um erro
edText.setError(pMessage);
edText.setFocusable(true);
edText.requestFocus();
return false;
}
return false;
}
}

sábado, 11 de dezembro de 2010

Caderneta de Saude

Bom.... inicio da segunda aplicação. O BabyTimer vai indo em paralelo :-D. Estou batendo cabeça com relação a acesso do banco de dados sqlite.... pouca documentação. Fazer rodar é não é difícil, mas o importante é fazer da melhor forma. Não encontrei nenhum exemplo ainda que fale de controle transacional, embora existam métodos específicos para isso. Vamos ver...
O legal desta aplicação é que, além de envolver acesso a banco de dados, estou querendo fazer uns gráficos... vai ser um bom desafio :-D

BabyTimer

Acabei de construir uma primeira versão do BabyTimer, que é uma aplicação que configura alarmes específicos para atividades importantes para o bebê, como é o caso da hora da mamadeira por exemplo. Ainda quero deixar disponível alguns toques engraçados para poderem ser escolhidos sem que o usuário tenha que baixar algum da internet. Já dá para usar. Estou disponibilizando para alguns amigos mais próximos, mas assim que estiver mais estável libero para todo mundo. Foi legal desenvolver esta aplicação pois precisei usar alguns recursos bem importantes do android como o Service, Notification, Preferences etc. Foi um bom treino... :-D

Plugin para o eclipse

A explicação do site do Android para a instalação do plugin do eclipse para desenvolver aplicações é bastante eficaz, contudo tive comportamentos diferentes usando as mesmas versões dos aplicativos instalando em máquinas diferentes. Um ponto que demorei MUITO para resolver e que não encontrava resposta em nenhum lugar é que, apesar do emulador iniciar sem problemas, minha aplicação não era instalada nele. Não aparecia nenhuma mensagem de erro, então, como vcs podem perceber , ficou bem complicado achar uma solução. No final acabou sendo bem fácil resolver. Percebi que na perspectiva DDMS (aparece quando instala o plugin do android) do eclipse o emulador não estava aparecendo iniciado. Simplesmente cliquei na opção de reiniciar (Reset adb) e logo ele apareceu. A partir de então foi só rodar novamente a aplicação como uma aplicação androi e tudo passou a funcionar.