2 de junho de 2010
2 comentários
No artigo de hoje começaremos a integrar a nossa aplicação QuickNotes com o QuickNotesProvider, que criamos no artigo anterior.
Vamos começar inserindo uma anotação do usuário no banco de dados. Para fazer isso, o primeiro passo é adicionar um Listener ao botão ‘Inserir’, da seguinte forma:
Button insertButton = (Button)findViewById(R.id.insert_button);
insertButton.setOnClickListener(mInsertListener);
E agora, criando o objeto mInsertListener. Ele precisa ser um objeto que implementa a interface OnClickListener,. Assim, precisamos implementar o método onClick(), que será chamado assim que o usuário pressionar o botão.
// Definindo um OnClickListener para o botão "Inserir"
private OnClickListener mInsertListener = new OnClickListener() {
public void onClick(View v) {
EditText editBox = (EditText)findViewById(R.id.edit_box);
addNote(editBox.getText().toString());
editBox.setText("");
}
};
No código acima eu fiz uma chamada a um método que ainda não está implementado – o método addNote(), que recebe um String que será inserida no banco de dados. Ele será o método responsável por efetivamente “conversar”…
29 de maio de 2010
2 comentários
Um dos grandes diferenciais da plataforma android é a grande quantidade de módulos e APIs
que as aplicações tem à disposição para usar. Eles dão muito poder ao desenvolvedores, permitindo que estes façam coisas que eram impossíveis em outras plataformas móveis.
Um dos mais importantes módulos é o SQLite. Sim, amigos, já temos um SGDB (Sistema gerenciador de bancos de dados) instalado e pronto para usar! E é exatamente o que faremos no artigo de hoje.
No artigo anterior vimos como criar um Content Provider. Usaremos este provider para acessar o banco de dados.
Para fazer isso, precisamos implementar os métodos da classe ContentProvider que vimos no artigo passado (query(), delete(), update(), etc…) para prover ao usuário os métodos para criar, atualizar, deletar e recuperar os dados. Além disso, usaremos a classe SQLiteOpenHelper para gerenciar a conexão com o banco de dados.
A classe SQLiteOpenHelper
A classe SQLiteOpenHelper, como dito anteriormente, será…
25 de maio de 2010
2 comentários
Os Content Providers são parte importantíssima da arquitetura de um sistema android. É responsabilidade deles prover às aplicações o conteúdo que elas precisam para funcionar, ou seja, os dados.
Mas por que são realmente necessários?
As aplicações poderiam muito bem acessar diretamente um banco de dados, por exemplo. Porém, é uma boa prática tornar o modo como os dados são gravados transparente à aplicação. Dessa forma, a aplicação pode manter o foco nas interações com o usuário.
Além disso, essa técnica permite a criação de Shared Content Providers, que são providers “públicos” que podem ser acessados por várias aplicações. Por exemplo, existe o content provider de SMS/MMS que permite a qualquer aplicação ler as mensagens recebidas por um telefone celular.
E como é feita a comunicação entre Content Providers e Aplicações?
Uri. Guarde bem este nome, pois você irá precisar muito dele durante a sua carreira como desenvolvedor android.
Toda a comunicação entre aplicações e providers é feita através dos…
22 de maio de 2010
Sem comentários
Hoje dou uma pequena pausa na série Desenvolvendo para Android para falar sobre dois anúncios que o google fez ontem no “GoogleIO”.
Froyo (Android 2.2)
O primeiro anúncio foi o Froyo – a nova versão do sistema operacional do robozinho verde.
Essa nova versão traz várias melhorias, mas as que me chamaram mais atenção foram as melhorias de performance, entre elas:
- JIT – ou Just In Time, uma tecnologia que mapeia as intruções de código Java para código de máquina, tornando a performance destes um pouco mais parecida com código nativo. (Quer saber mais de JIT? a Wikipedia é um bom começo)
- Browser – A engine do bowser foi trocado para a “V8 Engine“, mais rápida e com um suporte melhor a Javascript.
Além das melhorias de performance, a nova release contém nova APIs e uma feature que particularmente acho fundamental: A possibilidade de instalação de aplicativos no SD card.
A descrição completa da release está…
13 de maio de 2010
Sem comentários
Hoje irei falar sobre um mecanismo simples porém muito útil para uma aplicação android: os logs.
Os logs permitem ao desenvolvedor debugar erros durante o desenvolvimento e também investigar problemas com o software em produção, ou seja, com o usuário final.
Para este fim, android tem um classe específica: A classe Log (android.util.Log).
Para criar os log, temos à disposição as funções Log.v(), Log.d(), Log.i(), Log.w(), r Log.e().
Mas por que tantas funções?
Porque os log em java tem alguns tipos – ou níveis – são eles:
- DEBUG – logs impressos pela função Log.d()
- ERROR – logs impressos pela função Log.e()
- INFO – logs impressos pela função Log.i()
- VERBOSE – logs impressos pela função Log.v()
- WARN – logs impressos pela função Log.w()
Todas estas funções recebem como parâmetros duas strings – a primeira, chamada de TAG, e a segunda que é a mensagem em si. A TAG é uma string que irá identificar a sua aplicação, tornando mais…
6 de maio de 2010
2 comentários
No post passado vimos como lançar uma Activity a partir de outra, usando as funções startActivity() e startActivityForResult().
Hoje usaremos esta técnica para mostrar ao usuário uma tela de “Boas Vindas” na nossa aplicação de exemplo, o QuickNotes.
Para criar essa nova Activity, usaremos alguma funções do Motodev. Se você não está usando a IDE da Motorola, não tem problema – é só criar os arquivos manualmente. Porém recomendo o uso da IDE, por facilitar bastante a nossa vida.
Vamos começar criando a Activity que dará “Boas Vindas” ao usuário.
Vá até o menu “MOTODEV” >”New” > “New Android Activity”. Na tela de configuração, entre com o nome da Activity a ser criada:
Após clicar em “Finish”, já haverá a classe “WelcomeActivity” no diretório src do nosso projeto.
Com a Activity criada, o próximo passo é criar o arquivo XML que definirá o seu layout. Crie o arquivo ‘welcome.xml’ no diretorio res/layout com o seguinte conteúdo:
…