You are on page 1of 95

Curso

Android Bsico
Marcelo Alves malves.info@gmail.com @malvesinfo

Agenda
Introduo Congurao do Ambiente Conceitos Activity Intents Interface Grca (Layouts e Views) IntentFilter Handler SQLite ContentProvider

Plataformas Mobile

Introduo
Celulares a cada ano vem crescendo tanto em numero

quanto em qualidade e tecnologia. Com esse avano tecnolgico hoje possvel ter de tudo em um nico aparelho mvel como: Cmera Digital, Bluetooth, Jogos, GPS , Acesso a Internet , ler e-mails TV digital.

Introduo
E para acompanhar esse mercado que esta a todo

vapor, empresas da alta tecnologia investem pesado no desenvolvimento de plataformas livres, exveis, que tenham grande evoluo tecnolgica. E como nesse mercado inovador sempre tem uma grande empresa chamando a ateno, dessa vez foi a Google quem chamou a ateno com o lanamento do Android, sua nova plataforma para dispositivos mveis.

O que Android?
Android uma plataforma para dispositivos mveis

desenvolvida pela Google e contm um sistema operacional baseado em Linux. Contm uma interface rica com diversos aplicativos instalados. Fcil de ser utilizado com tudo que de mais novo no mercado para dispositivos mveis. Possibilita a utilizao da linguagem Java para o desenvolvimento de aplicativos Android.

Evoluo Android

1.5 Cupcake

2.3 Gingerbread

Evoluo Android

3.x - Honeycomb

Evoluo Android

4.0 - Ice Cream Sandwich

4.1 - Jelly Bean

Open Handset Alliance


OHA um grupo formado pelas grandes empresas de

telefonia liderados pelo Google. Esse grupo tem o objetivo de denir uma plataforma aberta , moderna e exvel para o desenvolvimento de aplicaes coorporativas.

Cdigo aberto e livre?!?!?


Essa a uma das grandes novidades da plataforma.

Android a primeira plataforma para aplicaes mveis completamente livre de cdigo aberto. Programadores podem baixar e fazer melhorias, assim como empresas no tero custos em utilizar a plataforma em seus dispositivos e ainda podem personalizar da forma que quiserem sem precisar compartilhar estas alteraes.

Arquitetura Android

SDK Android
Alm de manter a plataforma, a Google tambm

disponibiliza um SDK para o desenvolvimento de aplicaes para o Android. Com SDK disponvel a linguagem utilizada nada mais nada menos que a famosa linguagem JAVA. Google tambm disponibilizou um plugin para o Eclipse chamado ADT(Android Development Tools) para facilitar no desenvolvimento de aplicativos para Android.

Mquina Virtual Dalvik


Android no utiliza a maquina virtual Java (JVM), e

sim utilizado a maquina virtual Dalvik . Depois que os bytecode (.class) so compilados os mesmo so convertidos para o formato .dex (Dalvik Executable) que nada mais que uma aplicao Android compilada. Depois da compilao gerado um arquivo .apk (Android Package File) que compacta arquivos compilados .dex e recursos utilizados pelo prprio desenvolvedor.

http://developer.android.com

Congurando ambiente de Desenvolvimento


Para iniciar a congurao do ambiente de

desenvolvimento necessrio baixar o SDK.


http://developer.android.com/sdk/index.html

A IDE utilizada ser o Eclipse. http://www.eclipse.org/downloads/

Instalando o SDK
Aps fazer o download do SDK , basta descompactar

em qualquer diretrio do sistema operacional (Neste exemplo foi utilizado o windows).


Ex.: C:\ android-sdk-<plataforma>-<release>_<build>

Dentro do SDK existe uma pasta chamada tools que

contm varias ferramentas e o emulador Android.

Instalao do plugin ADT para o Eclipse


Abra o Eclipse e acesso o menu Help / Install New

Software. No campo Work with inclua o link

https://dl-ssl.google.com/android/eclipse/

Aps incluir o link, clicar no boto Add.

Instalao do plugin ADT para o Eclipse

Instalao do plugin ADT para o Eclipse


Na Janela Add Site informe um nome para o link

adicionado e clique em OK para conrmar.

Instalao do plugin ADT para o Eclipse


Aps a incluso, selecione o plugin a ser instalado e

clicar em Next....Next.

Instalao do plugin ADT para o Eclipse


Aceitar os termos de instalao e clicar em Finish.

Logo aps ir iniciar o download do plugin.

Instalao do plugin ADT para o Eclipse


Aps a instalao do ADT necessrio congur-lo

para utilizar o SDK que foi instalado.

Congurando ADT
Para congurar o ADT entre no menu Window /

Preferences e selecionar a opo Android. Clique em OK para conrmar.

Congurando ADT
Com ADT instalado e congurado j possvel utilizar

as ferramentas oferecidas pelo plugin, o emulador e principalmente iniciar o desenvolvimento de aplicativos Android.

Congurando Emulador
Para utilizar o emulador, necessrio antes incluir o

AVD(Android Virtual Device) com TARGET da verso desejada do SDK ou com recursos especcos Ex.: Google Maps. A partir da verso 1.5 do SDK comeou a vir embutido a verso anterior. Como estamos utilizando a verso 1.6 veio junto ao SDK a verso 1.5. Isso til para aplicaes sua que ainda utilizam a verso anterior e no se adaptaram a verso mais atualizada.

Congurando Emulador
Para cadastrar um AVD novo acesse o menu

Windows / Android SDK and ADV Manager. Logo aps clique no boto NEW.

Congurando Emulador
Na incluso do AVD informe uma nome para o

mesmo e escolha a TARGET da verso atual do SDK. Clique em Create AVD para concluir.

Iniciando Emulador
Aps cadastrar selecione o AVD cadastrado e clique

em START para iniciar o Emulador.

Emulador
Esta disponvel no emulador a maioria dos recursos

que um celular fsico possui. Desde browser, contacts, Message, E-mail e muito mais.

Emulador
Demonstrao de Browser

Primeiro Projeto
Neste primeiro exemplo ser demonstrado como se

cria um projeto no Eclipse, a estrutura de diretrios e arquivos padres utilizados em um projeto Android.

Criando Projeto
Para criar um projeto, clique no menu File / New /

Project. Selecione Android Project e clique em Next.

Criando Projeto
Na prxima tela ser exibidos os seguintes campos: Project Name: Nome do projeto que ser criado. Build Target: Pode ser selecionado qual verso do SDK que esse projeto ir utilizar, no nosso caso iremos usar a Target Android 1.6. Application Name: Ser o titulo da aplicao. Esse titulo aparecer quando a aplicao for instalada no emulador. Package Name: Nome do Pacote em que a activity principal far parte. Importe que esse nome seja nico para identicao da mesma. Create Activity: Nome da activity principal que servir como ponto inicial da aplicao. Uma aplicao pode ter uma ou vrias activities que representam as telas de uma aplicao.

Criando Projeto

Estrutura do Projeto
Essa a estrutura de um projeto Android.

Estrutura do Projeto
src: Pasta que contem as classes Java do projeto. assets: Este diretrio guarda arquivos opcionais do

projeto como por exemplo bibliotecas de terceiros. res: Diretrio que guarda os recursos da aplicao que so:
drawable: Diretrio que com imagens da aplicao. layout: Contm os arquivos XML para a criao de

layouts das telas da aplicao. values: Contm os arquivos XML usados para a internacionalizao da aplicao e conguraes.

Arquivos do Projeto
/res/layout/main.xml Esse arquivo dene a interface grca da tela. Por padro na criao do projeto criado um <TextView> para exibir uma mensagem de texto. A mensagem buscada como referencia no atributo android:text=@string/hello , utilizando a chave hello localizada no arquivo strings.xml . Poder ser criado outros arquivos xml de layouts. Ao incluir um novo layout no diretrio /res/layout/ automaticamente ser criado uma referncia na classe R.java.

Arquivos do Projeto
/res/layout/main.xml

Arquivos do Projeto
/res/values/strings.xml Este arquivo contem as mensagens da aplicaes. Todos os textos so localizados neste arquivo, e cada um tem seu identicador @string/chave.

Arquivos do Projeto
A classe R.java tem constantes que referenciam os

recursos localizados na pasta res do projeto, como por exemplo as mensagens denidas no arquivo strings.xml. Todas as vezes que um recurso atualizado ou adicionado a classe R.java ser atualizada automaticamente com referencia a esse recurso. ESTA CLASSE NO PODE SER ALTERADA MANUALMENTE!!!!

Arquivos do Projeto
Classe R.

Arquivos do Projeto
AndroidManifest.xml Este o arquivo principal da aplicao e responsvel pela congurao do projeto como por exemplo: Incluso da activity principal e de todas as activities, icone da aplicao, nome da aplicao, entre inmeras conguraes.

AcNvity
Na criao do projeto gerado automaticamente uma

classe que representa a tela (Activity) principal do projeto. esta classe que ser a tela inicial. Mas no impede de fazer esse processo manualmente utilizando o arquivo AndroidManifest.xml Para cada tela criada para aplicao dever ser lha da classe android.app.Activity. Cada Activity responsvel por controlar o estado ,eventos da tela e denir qual View ser responsvel por desenhar a interface grca do usurio. Ao herdar de Activity ser necessrio implementar o mtodo onCreate(bundle) onde o mesmo chamado automaticamente quando a Activity criada.

AcNvity
Mtodo setContentView(view) informando a

constante R.layout.main, faz com que a view denida no arquivo XML seja exibida.

AndroidManifest
obrigatrio que cada Activity do projeto esteja

declarada no arquivo AndroidManifest.xml.


<activity android:name=.ExemploAct1/>

Para a Activity que ser o ponto de partida do projeto

dever ser declarada da seguinte forma:

AndroidManifest
Tag <intent-lter> customiza como a activity ser

iniciada. A ao MAIN signica que a activity PrimeiroExemploActivity pode ser iniciada isoladamente, como ponto inicial da aplicao.
<action android:name="android.intent.action.MAIN" />

A categoria LAUCHER indica que a activity estar

disponivl na tela inicial junto com outras aplicaes.


<category android:name="android.intent.category.LAUNCHER" />

Executando Projeto
Para executar um projeto Android no emulador,

clique com o boto direito no projeto, selecione o menu Run as/ Android Application.

AcNvity / Ciclo de Vida


Os possveis estados de uma Activity so: Executando, Temporariamente interrompida em segundo plano ou completamente destruida. Cada Activity iniciada inserida no topo da pilha,

chamada de activity stack. Ento se uma nova activity iniciada a que estava em execuo ca abaixo da nova. Se uma activity estiver no estado de pausada, o sistema operacional pode decidir encerrar o processo. Um exemplo tpico seria para liberar recursos e memria para outras aplicaes.

AcNvity / Ciclo de Vida

AcNvity / Recuperando objetos


Quando construmos telas usando arquivos XML de

layout, surge a necessidade recuperar os objetos denidos no arquivo dentro do codigo-fonte. Como por exemplo: Recuperar um ImageView quando pretendemos denir uma imagem, entre outros. O Exemplo a seguir adicionamos a tag <ImageView> no arquivo de layout que serve para exibir uma imagem na tela. Foi denido alm da largura e altura o id que servir para recuperarmos o ImageView em tempo de execuo.

AcNvity / Recuperando objetos


Para denir um id foi adicionado o atributo

android:id=@+id/imagem na tag <ImageView>.

AcNvity / Recuperando objetos


Na classe R exibido o id denido no arquivo de

layout. Isso tudo feito automaticamente quando as modicaes so feitas no arquivo XML.

AcNvity / Recuperando objetos


Agora basta utilizar o mtodo ndViewById(id) para

recuperarmos objetos denido no arquivo XML.

AcNvity / Recuperando objetos


Exerccio 1: Crie um projeto Android e dena em seu layout dois componentes TextView e um ImageView. Para cada componente dena um id. Na activity principal recupere ambos componentes utilizando o mtodo ndViewById(id). Para o componente ImageView, inclua uma imagem de sua escolha (No esquea de incluir o arquivo de imagem no diretrio padro). Para o componente TextView, modicar seu texto.

AcNvity - Navegao
Para fazer a navegao entre Activities necessrio

utilizar o mtodo startActivity(Intent) Intents usado na inteno de executar algo. Esse objeto encapsula qual ser a inteno, inteno informada no momento em que for criada uma instancia da Intent. Para este exemplo iremos utilizar a Intent para abrir uma outra Activity.

AcNvity Passando valores para uma AcNvity


Utiliza-se a propria Intent para passar valores para a

Activity que ser aberta. Intent contm metdos de HashMap. Onde informado a chave + valor. E na Activity que ser aberta pode-se recuperar esse valor atravs da mesma chave.

AcNvity Passando valores para uma AcNvity


Definindo parmetro :
Intent intent = new Intent(this, MinhaActivity.class); Bundle bundle = new Bundle(); bundle.putString("meu_valor", "Valor"); intent.putExtras(bundle); startActivity(intent);

Recuperando
Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String value = bundle.getString("meu_valor");

ListAcNvity
Activity que exibe uma lista com itens. Internamente

essa Activity utiliza um ListView, assim no precisa criar um layout contendo um ListView. Ento no precisa chamar setContentView. Para utilizar a ListActivity preciso estender de android.app.ListActivity. Para incluir na lista os itens que sero exibidos necessrio utilizar um Objeto que seja lho de ListAdapter. esse adaptador que ir fazer todo o trabalho de incluir/exibir os dados na lista.

ListAcNvity - Adapter
Caso necessite exibir itens de forma diferente do que

o Android oferece, basta criar uma classe que seja um Adaptador. Normalmente utiliza-se o BaseAdapter nas classe que ser o adaptador. Para personalizao do item feita dentro do mtodo sobrecarregado getView(...). Esse mtodo chamado quando a lista for exibir cada item dentro dela.

ListAcNvity - SinmpleCursorAdapter
SimpleCursorAdapter ir mapear o que estive dentro

do cursor atravs das colunas com algum componente denido em um layout. Cursor pode ser recuperado atravs:
Da dados quando executado alguma query do banco

de dados recuperando valores. A lista de contatos do telefone ira retornar um Cursor Outras aplicaes que compartilhem dados

Intents
inteno de executar alguma ao. Essa ao envia

para o SO do Android e ele ir vericar a Intent e executar de acordo com o que foi congurado na Intent. Muitos servios do SO Android necessitam da intente para serem executado, o mais comuns so as Atividades (Activity) e Servios (Services)

Intents - NaNvas
Android permite que aplicativos executem aplicaes

nativas do SO atravs de Intents. Tais como:


Browser Google Maps Efetuar Ligao Abrir SMS Abrir caixa de Email Calendrio Cmera Entre outras

IntentFilter
Permite criar um ltro para executar uma

determinada ao. Muito utilizada para executar servio de outras aplicaes ou do SO Android Intent pode utilizar IntentFilter para executar uma Activity quando no souber o nome da Activity ou quando no tiver acesso a Activity. Exemplo: Abrir a Activity de uma outra aplicao.

IntentFilter
Para criar um ltro onde ir abrir uma activity,

necessrio denir na declarao da Activity a TAG <intent-lter> dentro da declarao da Activity no AndroidManifest.
<activity android:name=MinhaActivity"> <intent-filter> <action android:name=ABRIR_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>

IntentFilter
<action> Ao que a Intent ir realizar. No nosso

exemplo foi declarado um nome para a ao onde a activity ser executada atravs do nome declarado ABRIR_ACTIVITY <category> utilizada para informar a Intent como ele deve executar a ao. Como executar a ao no cdigo:
Intent intent = new Intent(ABRIR_ACTIVITY); startActivity(intent);

GUI Interface Grca


View e ViewGroup LinearLayout RelativeLayout GridView TabHost ScrollView TableLayout AbsoluteLayout FrameLayout Gallery

Interface Grca
View a classe me de todos os componentes visuais do

Android. Serve de base para esse componentes que so chamados de widgets (Botoes, TextView e etc). ViewGroup classe me dos gerenciadores de layouts (LinearLayout, RelativeLayout e etc). ViwGroup ser responsvel por organizar as Views que sero exibidas para o usurio.

Interface Grca

Interface Grca

Interface Grca - Layouts


LinearLayout - Organiza os componentes de View de

forma linear (vertical ou horizontal):


<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:// schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <TextView android:text="green" android:gravity="center_horizontal" android:background="#00aa00" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:text="blue" android:gravity="center_horizontal" android:background="#0000aa" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout>

Interface Grca - Layouts


RelativeLayout: Permite organizar os componentes de

View atravs de referencia a outra View ou com referencia ao prprio RelativeLayout

Interface Grca - Layouts


RelativeLayout
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/ android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Type here:"/> <EditText android:id="@+id/entry" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/editbox_background" android:layout_below="@id/label"/> <Button android:id="@+id/ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/entry" android:layout_alignParentRight="true" android:layout_marginLeft="10dip" android:text="OK" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/ok" android:layout_alignTop="@id/ok" android:text="Cancel" /> </RelativeLayout>

Interface Grca - Layouts


GridView: Organiza os item em grade automaticamente

atravs do ListAdapter. Para essa ViewGroup necessrio utilizar um adaptador para que os item sejam exibidos.
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/ android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" />

Interface Grca - Layouts


TabHost: Exibe a UI em forma de Abas. TabHost ser o

gerenciador das abas em exibio, e cada aba ser uma instancia de TabHost onde dever ser includo o contedo da aba. Para a utilizao de abas, necessrio criar uma Activity que herda de TabActivity

Interface Grca - Layouts


TabHost
public class MinhaTab2Activity extends TabActivity implements OnTabChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TabHost tabHost = getTabHost(); TabSpec aba1 = tabHost.newTabSpec("Aba1"); aba1.setIndicator("Minha Aba1", getResources().getDrawable(R.drawable.icon)); Intent inAba1 = new Intent(this, Aba1Activity.class); aba1.setContent(inAba1); TabSpec aba2 = tabHost.newTabSpec("Aba2"); aba2.setIndicator("Minha Aba2"); aba2.setContent(new Intent(this, Aba2Activity.class)); tabHost.addTab(aba1); tabHost.addTab(aba2); }

Interface Grca - Layouts


ScrollView: Utilizado quando precisa-se incluir muitos

componente em uma tela permitindo o usurio fazer a rolagem para a visualizao de todos os componentes.
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/editFilter" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Opo X" /> </LinearLayout> </ScrollView>

Interface Grca - Layouts


TableLayout: Exibe os componentes de View em linhas e

colunas.

<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/ android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <TextView android:layout_column="1" android:text="Open..." android:padding="3dip" /> <TextView android:text="Ctrl-O" android:gravity="right" android:padding="3dip" /> </TableRow> <TableRow> <TextView android:layout_column="1" android:text="Save..." android:padding="3dip" /> <TextView android:text="Ctrl-S" android:gravity="right" android:padding="3dip" /> </TableRow> <TableLayout>

Views
TextView Exibe um texto na tela. Suas principais

propriedades:

android:text dene um texto android:password exibe o texto com mascara de

password android:autoLink Denie um link de acesso para: Web, e-mail, phone, map e all.

Views
EditText View utilizada para a entrada de texto.

Pode ser alterada a forma de entrada do texto atravs do propriedade android:inputType, com as seguintes possbilidades:
textPassword number textEmailAddress Entre outros..

Views
Button View que permite a utilizao/exibio de

um boto na tela. ImageButton Tem o mesmo comportamento do Button mas exibe uma imagem no lugar do texto. CheckBox Exibe uma view com uma caixa de seleo. ToggleButton Exibe uma view parecida com o Check box, mas utilizado junto com texto, podendo fazer o controle de ON e OFF

Views
Spinner Exibe as opes no formato de comboBox. AlertDialog Permite a exibio de alertas, para criar

um dialog necessrio criar uma instancia da classe: android.app.AlertDialog.Builder. Alert permite a incluso de titulo, descrio, imagem, botes e tambm a customizao.

Views
ProgressDialog lha de AlertDialog e permite

exibir um alerta com progress animado.


ProgressDialog dialog = ProgressDialog.show (MyActivity.this, "", "Loading. Please wait...", true);

ProgressBar Exibe uma barra de progresso,

permitindo a alterao dessa barra conforme a concluso de um determinado processo.


ProgressDialog progressDialog; progressDialog = new ProgressDialog(mContext); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMessage("Loading..."); progressDialog.setCancelable(false);

Views
Menu/SubMenu - Permite a criao de menus que

servir como atalho para acessar outras partes da aplicao. SubMenus sero opes a mais que um determinado menu ir oferecer para o usurio.

Banco de Dados
Android utiliza nativamente o banco de dados SQLite,

alm de disponibilizar de APIs que possibilitam a manipulao da base de dados Cada aplicao pode criar um ou mais banco. Ao criar seu banco o mesmo ser salvo no diretrio da aplio no aparelho: /data/data/pacote_da_app/databases Banco de dados pode ser criado das seguintes formas:
Utilizando uma tool SQLite e importando o banco para

a aplio Atravs a API do SQLite disponvel no SDK Ou pelo terminal

Banco de Dados
Para criar o banco de dados atravs de uma tool pode

utilizar a ferramenta SQLite Expert Personal


http://www.softsland.com/sqlite_expert_personal.html

Aps criar o banco de dados, basta executar seu

projeto no emulador e importar a base de dados no diretrio /data/data/pacote_da_app/databases


Banco de dados
Abrindo ou criando banco de dados:
SQLiteDatabase db = context.openOrCreateDatabase( meu_db, Context.MODE_PRIVATE, null);

Modos de permisso MODE_PRIVATE: Permite apena a aplicao utilizar o banco de dados MODE_WORLD_WRITEABLE: Qualquer um pode ler e escrever MODE_WORLD_READABLE: Qualquer um pode somente ler

Banco de Dados Inserindo dados


Como dito anteriormente o Android SDK

disponibiliza de APIs para a manipulao da base de dados. Inserindo. Para inserir dados no banco, preciso utilizar o objeto ContentValues, que funciona como HashTable, onde dever ser includos os valores de acordo com o Nome da Coluna + Valor: ContentValues values = new ContentValues();
values.put("nome", "Marcelo"); values.put("funcao", "Engenheiro"); db.insert("funcionarios", null, values);

Banco de dados - Atualizando


Para atualizar utilizado o mesmo objeto

ContentValues

ContentValues values = new ContentValues(); values.put("nome", "Marcelo Alves"); values.put("funcao", "Professor"); db.update("funcionarios", values, "_id=?", new String[]{20"}); Parmetros de cada coluna informada na clusula Where

Identicao das colunas para a clusula Where

Banco de dados - Deletando


Para deletar um ou mais registros, basta chamar o

mtodo delete da classe SQLiteDatabase

db.delete(funcionarios", "_id=?", new String[]{20"});

Banco de dados Busca


Para efetuar a busca no banco de dados necessrio

utilizar o objeto Cursor para extrair o resultado vindo do banco.


SQLiteDatabase db = openOrCreateDatabase("curso", Context.MODE_PRIVATE, null); List<Funcionario> funcionarios = new ArrayList<Funcionario>(); Cursor cursor = db.query(funcionarios", new String[] { "_id", "nome", "funcao" }, "nome=?", new String[] { "Marcelo" }, null, null, null); while (cursor.moveToNext()) { Funcionario func = new Funcionario(); func.setId(cursor.getInt(0)); func.setNome(cursor.getString(cursor.getColumnIndex("nome"))); func.setFuncao(cursor.getString(cursor.getColumnIndex("funcao"))); funcionarios.add(func); }

Banco de dados Busca


Entendendo a funo query
Cursor cursor = db.query(funcionarios", new String[] { "_id", "nome", "funcao" }, "nome=?", new String[] { "Marcelo" }, null, null, null);

Clusula Where

Parametro da clusula Where

group by having order by Colunas que devero retornar no resultado. Caso passe null todas sero retornadas

SharedPreferences
SharedPreference pode ser usado como uma opo de

armazenamento de informaes. Os dados so salvos em arquivos do sistema, onde tudo gerenciado pela API SharedPreferences. Para salvar informaes no SharedPrefenreces, basta informar o nome do seu preferences para recuperar ou criar um novo e incluir os dados.

SharedPreferences
Criando e Incluindo no Preferences:
//Carregando ou criando um novo preference SharedPreferences prefs = getSharedPreferences ("meu_pref", MODE_PRIVATE); //Salvando preference SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean("usuario_logado", false); editor.commit(); //Recuperando dados do preferences boolean isLogado = prefs.getBoolean ("usuario_logado", false);

Arquivos
Android disponibiliza na activity mtodos para a

manipulao de arquivos:

openFileInput(String) retorna FileInputStream openFileOutput(String, mode) retorna

FileOutputStream deleteFile(name) retorna boolean getFileStreamPath(name) retorna File

You might also like