android básico
DESCRIPTION
Android BásicoTRANSCRIPT
Agenda � Introdução � Configuração do Ambiente � Conceitos � Activity � Intents � Interface Gráfica (Layouts e Views) � IntentFilter � Handler � SQLite � ContentProvider
Plataformas Mobile
Introdução � Celulares a cada ano vem crescendo tanto em numero quanto em qualidade e tecnologia. Com esse avanço tecnológico hoje é possível ter de tudo em um único aparelho móvel como: Câmera Digital, Bluetooth, Jogos, GPS , Acesso a Internet , ler e-‐mails TV digital.
Introdução � E para acompanhar esse mercado que esta a todo vapor, empresas da alta tecnologia investem pesado no desenvolvimento de plataformas livres, flexíveis, que tenham grande evolução tecnológica.
� E como nesse mercado inovador sempre tem uma grande empresa chamando a atenção, dessa vez foi a Google quem chamou a atenção com o lançamento do Android, sua nova plataforma para dispositivos móveis.
O que é Android? � Android é uma plataforma para dispositivos móveis desenvolvida pela Google e contêm um sistema operacional baseado em Linux.
� Contém uma interface rica com diversos aplicativos instalados. Fácil de ser utilizado com tudo que á de mais novo no mercado para dispositivos móveis.
� Possibilita a utilização da linguagem Java para o desenvolvimento de aplicativos Android.
Evolução Android
1.5 Cupcake 2.3 Gingerbread
Evolução Android
3.x - Honeycomb
Evolução 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 definir uma plataforma aberta , moderna e flexível para o desenvolvimento de aplicações coorporativas.
Código aberto e livre?!?!? � Essa é a uma das grandes novidades da plataforma. Android é a primeira plataforma para aplicações móveis completamente livre de código aberto.
� Programadores podem baixar e fazer melhorias, assim como empresas não terão custos em utilizar a plataforma em seus dispositivos e ainda podem personalizar da forma que quiserem sem precisar compartilhar estas alterações.
Arquitetura Android
SDK Android � Além de manter a plataforma, a Google também disponibiliza um SDK para o desenvolvimento de aplicações para o Android.
� Com SDK disponível a linguagem utilizada nada mais nada menos que a famosa linguagem JAVA.
� Google também disponibilizou um plugin para o Eclipse chamado ADT(Android Development Tools) para facilitar no desenvolvimento de aplicativos para Android.
Máquina Virtual Dalvik � Android não utiliza a maquina virtual Java (JVM), e sim é utilizado a maquina virtual Dalvik .
� Depois que os bytecode (.class) são compilados os mesmo são convertidos para o formato .dex (Dalvik Executable) que nada mais é que uma aplicação Android compilada.
� Depois da compilação é gerado um arquivo .apk(Android Package File) que compacta arquivos compilados .dex e recursos utilizados pelo próprio desenvolvedor.
http://developer.android.com
Configurando ambiente de Desenvolvimento � Para iniciar a configuração do ambiente de desenvolvimento é necessário baixar o SDK. � http://developer.android.com/sdk/index.html
� A IDE utilizada será o Eclipse. � http://www.eclipse.org/downloads/
Instalando o SDK � Após fazer o download do SDK , basta descompactar em qualquer diretório 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 contém varias ferramentas e o emulador Android.
Instalação 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/
� Após incluir o link, clicar no botão Add.
Instalação do plugin ADT para o Eclipse
Instalação do plugin ADT para o Eclipse � Na Janela Add Site informe um nome para o link adicionado e clique em OK para confirmar.
Instalação do plugin ADT para o Eclipse � Após a inclusão, selecione o plugin a ser instalado e clicar em Next....Next.
Instalação do plugin ADT para o Eclipse � Aceitar os termos de instalação e clicar em Finish. Logo após irá iniciar o download do plugin.
Instalação do plugin ADT para o Eclipse � Após a instalação do ADT é necessário configurá-‐lo para utilizar o SDK que foi instalado.
Configurando ADT � Para configurar o ADT entre no menu Window / Preferences e selecionar a opção Android. Clique em OK para confirmar.
Configurando ADT � Com ADT instalado e configurado já é possível utilizar as ferramentas oferecidas pelo plugin, o emulador e principalmente iniciar o desenvolvimento de aplicativos Android.
Configurando Emulador � Para utilizar o emulador, é necessário antes incluir o AVD(Android Virtual Device) com TARGET da versão desejada do SDK ou com recursos específicos Ex.: Google Maps.
� A partir da versão 1.5 do SDK começou a vir embutido a versão anterior. Como estamos utilizando a versão 1.6 veio junto ao SDK a versão 1.5. Isso é útil para aplicações sua que ainda utilizam a versão anterior e não se adaptaram a versão mais atualizada.
Configurando Emulador � Para cadastrar um AVD novo acesse o menu Windows / Android SDK and ADV Manager. Logo após clique no botão NEW.
Configurando Emulador � Na inclusão do AVD informe uma nome para o mesmo e escolha a TARGET da versão atual do SDK.
� Clique em Create AVD para concluir.
Iniciando Emulador � Após cadastrar selecione o AVD cadastrado e clique em START para iniciar o Emulador.
Emulador � Esta disponível no emulador a maioria dos recursos que um celular físico possui. Desde browser, contacts, Message, E-‐mail e muito mais.
Emulador � Demonstração de Browser
Primeiro Projeto � Neste primeiro exemplo será demonstrado como se cria um projeto no Eclipse, a estrutura de diretórios e arquivos padrões 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 próxima tela será exibidos os seguintes campos:
� Project Name: Nome do projeto que será criado. � Build Target: Pode ser selecionado qual versão do SDK que esse projeto irá utilizar, no nosso caso iremos usar a Target Android 1.6.
� Application Name: Será o titulo da aplicação. Esse titulo aparecerá quando a aplicação for instalada no emulador.
� Package Name: Nome do Pacote em que a activity principal fará parte. Importe que esse nome seja único para identificação da mesma.
� Create Activity: Nome da activity principal que servirá como ponto inicial da aplicação. Uma aplicação pode ter uma ou várias activities que representam as telas de uma aplicação.
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 diretório guarda arquivos opcionais do projeto como por exemplo bibliotecas de terceiros.
� res: Diretório que guarda os recursos da aplicação que são: � drawable: Diretório que com imagens da aplicação. � layout: Contém os arquivos XML para a criação de layouts das telas da aplicação.
� values: Contém os arquivos XML usados para a internacionalização da aplicação e configurações.
Arquivos do Projeto � /res/layout/main.xml
� Esse arquivo define a interface gráfica da tela. Por padrão na criação 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 diretório /res/layout/ automaticamente será criado uma referência na classe R.java.
Arquivos do Projeto � /res/layout/main.xml
Arquivos do Projeto � /res/values/strings.xml
� Este arquivo contem as mensagens da aplicações. Todos os textos são localizados neste arquivo, e cada um tem seu identificador @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 definidas 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 NÃO PODE SER ALTERADA MANUALMENTE!!!!
Arquivos do Projeto � Classe R.
Arquivos do Projeto � AndroidManifest.xml
� Este é o arquivo principal da aplicação e responsável pela configuração do projeto como por exemplo: Inclusão da activity principal e de todas as activities, icone da aplicação, nome da aplicação, entre inúmeras configurações.
AcNvity � Na criação do projeto é gerado automaticamente uma classe que representa a tela (Activity) principal do projeto. É esta classe que será a tela inicial. Mas não impede de fazer esse processo manualmente utilizando o arquivo AndroidManifest.xml
� Para cada tela criada para aplicação deverá ser filha da classe android.app.Activity. Cada Activity é responsável por controlar o estado ,eventos da tela e definir qual View será responsável por desenhar a interface gráfica do usuário.
� Ao herdar de Activity será necessário implementar o método onCreate(bundle) onde o mesmo é chamado automaticamente quando a Activity é criada.
AcNvity � Método setContentView(view) informando a constante R.layout.main, faz com que a view definida no arquivo XML seja exibida.
AndroidManifest � É obrigatório 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-‐filter> customiza como a activity será iniciada.
� A ação MAIN significa que a activity “PrimeiroExemploActivity” pode ser iniciada isoladamente, como ponto inicial da aplicação. � <action android:name="android.intent.action.MAIN" />
� A categoria LAUCHER indica que a activity estará disponivél na tela inicial junto com outras aplicações. � <category android:name="android.intent.category.LAUNCHER" />
Executando Projeto � Para executar um projeto Android no emulador, clique com o botão direito no projeto, selecione o menu Run as/ Android Application.
AcNvity / Ciclo de Vida � Os possíveis estados de uma Activity são:
� Executando, Temporariamente interrompida em segundo plano ou completamente destruida.
� Cada Activity iniciada é inserida no topo da pilha, chamada de “activity stack”. Então se uma nova activity é iniciada a que estava em execução fica abaixo da nova.
� Se uma activity estiver no estado de pausada, o sistema operacional pode decidir encerrar o processo. Um exemplo típico seria para liberar recursos e memória para outras aplicações.
AcNvity / Ciclo de Vida
AcNvity / Recuperando objetos � Quando construímos telas usando arquivos XML de layout, surge a necessidade recuperar os objetos definidos no arquivo dentro do codigo-‐fonte. Como por exemplo: Recuperar um ImageView quando pretendemos definir 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 definido além da largura e altura o “id” que servirá para recuperarmos o ImageView em tempo de execução.
AcNvity / Recuperando objetos � Para definir um “id” foi adicionado o atributo android:id=“@+id/imagem” na tag <ImageView>.
AcNvity / Recuperando objetos � Na classe R é exibido o id definido no arquivo de layout. Isso tudo é feito automaticamente quando as modificações são feitas no arquivo XML.
AcNvity / Recuperando objetos � Agora basta utilizar o método findViewById(id) para recuperarmos objetos definido no arquivo XML.
AcNvity / Recuperando objetos � Exercício 1:
� Crie um projeto Android e defina em seu layout dois componentes TextView e um ImageView.
� Para cada componente defina um “id”. � Na activity principal recupere ambos componentes utilizando o método findViewById(id).
� Para o componente ImageView, inclua uma imagem de sua escolha (Não esqueça de incluir o arquivo de imagem no diretório padrão).
� Para o componente TextView, modificar seu texto.
AcNvity -‐ Navegação � Para fazer a navegação entre Activities é necessário utilizar o método startActivity(Intent)
� Intents é usado na intenção de executar algo. Esse objeto encapsula qual será a intenção, intenção 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 contém metódos de HashMap. Onde é informado a chave + valor. E na Activity que será aberta pode-‐se recuperar esse valor através da mesma chave.
AcNvity – Passando valores para uma AcNvity
Intent intent = new Intent(this, MinhaActivity.class); Bundle bundle = new Bundle(); bundle.putString("meu_valor", "Valor"); intent.putExtras(bundle); startActivity(intent);
• Definindo parâmetro :
• 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 não precisa criar um layout contendo um ListView. Então não precisa chamar setContentView.
� Para utilizar a ListActivity é preciso estender de android.app.ListActivity.
� Para incluir na lista os itens que serão exibidos é necessário utilizar um Objeto que seja filho 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 personalização do item é feita dentro do método sobrecarregado getView(...). Esse método é chamado quando a lista for exibir cada item dentro dela.
ListAcNvity -‐ SinmpleCursorAdapter � SimpleCursorAdapter irá mapear o que estive dentro do cursor através das colunas com algum componente definido em um layout.
� Cursor pode ser recuperado através: � Da dados quando é executado alguma query do banco de dados recuperando valores.
� A lista de contatos do telefone ira retornar um Cursor � Outras aplicações que compartilhem dados
Intents � É intenção de executar alguma ação. Essa ação é envia para o SO do Android e ele irá verificar a Intent e executar de acordo com o que foi configurado na Intent.
� Muitos serviços do SO Android necessitam da intente para serem executado, o mais comuns são as Atividades (Activity) e Serviços (Services)
Intents -‐ NaNvas � Android permite que aplicativos executem aplicações nativas do SO através de Intents. Tais como: � Browser � Google Maps � Efetuar Ligação � Abrir SMS � Abrir caixa de Email � Calendário � Câmera � Entre outras
IntentFilter � Permite criar um filtro para executar uma determinada ação. Muito utilizada para executar serviço de outras aplicações ou do SO Android
� Intent pode utilizar IntentFilter para executar uma Activity quando não souber o nome da Activity ou quando não tiver acesso a Activity. Exemplo: Abrir a Activity de uma outra aplicação.
IntentFilter � Para criar um filtro onde irá abrir uma activity, é necessário definir na declaração da Activity a TAG <intent-‐filter> dentro da declaração 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> Ação que a Intent irá realizar. No nosso exemplo foi declarado um nome para a ação onde a activity será executada através do nome declarado “ABRIR_ACTIVITY”
� <category> utilizada para informar a Intent como ele deve executar a ação.
� Como executar a ação no código: Intent intent = new Intent(“ABRIR_ACTIVITY”); startActivity(intent);
GUI – Interface Gráfica � View e ViewGroup � LinearLayout � RelativeLayout � GridView � TabHost � ScrollView � TableLayout � AbsoluteLayout � FrameLayout � Gallery
Interface Gráfica � View é a classe mãe de todos os componentes visuais do Android. Serve de base para esse componentes que são chamados de widgets (Botãoes, TextView e etc).
� ViewGroup é classe mãe dos gerenciadores de layouts (LinearLayout, RelativeLayout e etc). ViwGroup será responsável por organizar as Views que serão exibidas para o usuário.
Interface Gráfica
Interface Gráfica
Interface Gráfica -‐ 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 Gráfica -‐ Layouts � RelativeLayout: Permite organizar os componentes de View através de referencia a outra View ou com referencia ao próprio RelativeLayout
Interface Gráfica -‐ 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 Gráfica -‐ Layouts � GridView: Organiza os item em grade automaticamente através do ListAdapter. Para essa ViewGroup é necessário 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 Gráfica -‐ Layouts � TabHost: Exibe a UI em forma de Abas. TabHost será o gerenciador das abas em exibição, e cada aba será uma instancia de TabHost onde deverá ser incluído o conteúdo da aba. Para a utilização de abas, é necessário criar uma Activity que herda de TabActivity
Interface Gráfica -‐ 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 Gráfica -‐ Layouts � ScrollView: Utilizado quando precisa-‐se incluir muitos componente em uma tela permitindo o usuário fazer a rolagem para a visualização 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="Opção X" /> </LinearLayout>
</ScrollView>
Interface Gráfica -‐ 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 – define um texto � android:password – exibe o texto com mascara de password
� android:autoLink – Definie 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 através do propriedade android:inputType, com as seguintes possíbilidades: � textPassword � number � textEmailAddress � Entre outros..
Views � Button – View que permite a utilização/exibição de um botão 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 seleção.
� 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 opções no formato de comboBox. � AlertDialog – Permite a exibição de alertas, para criar um dialog é necessário criar uma instancia da classe: android.app.AlertDialog.Builder. Alert permite a inclusão de titulo, descrição, imagem, botões e também a customização.
Views � ProgressDialog – É filha de AlertDialog e permite exibir um alerta com progress animado.
� ProgressBar – Exibe uma barra de progresso, permitindo a alteração dessa barra conforme a conclusão de um determinado processo.
ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", "Loading. Please wait...", true);
ProgressDialog progressDialog; progressDialog = new ProgressDialog(mContext); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMessage("Loading..."); progressDialog.setCancelable(false);
Views � Menu/SubMenu -‐ Permite a criação de menus que servirá como atalho para acessar outras partes da aplicação. SubMenus serão opções a mais que um determinado menu irá oferecer para o usuário.
Banco de Dados � Android utiliza nativamente o banco de dados SQLite, além de disponibilizar de APIs que possibilitam a manipulação da base de dados
� Cada aplicação pode criar um ou mais banco. Ao criar seu banco o mesmo será salvo no diretório da aplição 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 aplição
� Através a API do SQLite disponível no SDK � Ou pelo terminal
Banco de Dados � Para criar o banco de dados através de uma tool pode utilizar a ferramenta SQLite Expert Personal http://www.softsland.com/sqlite_expert_personal.html
� Após criar o banco de dados, basta executar seu projeto no emulador e importar a base de dados no diretório /data/data/pacote_da_app/databases
Banco de dados � Abrindo ou criando banco de dados:
� Modos de permissão � MODE_PRIVATE: Permite apena a aplicação utilizar o banco de dados
� MODE_WORLD_WRITEABLE: Qualquer um pode ler e escrever
� MODE_WORLD_READABLE: Qualquer um pode somente ler
SQLiteDatabase db = context.openOrCreateDatabase( “meu_db”, Context.MODE_PRIVATE, null);
Banco de Dados – Inserindo dados � Como dito anteriormente o Android SDK disponibiliza de APIs para a manipulação da base de dados.
� Inserindo. Para inserir dados no banco, é preciso utilizar o objeto ContentValues, que funciona como HashTable, onde deverá ser incluídos 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"});
Identificação das colunas para a cláusula Where
Parâmetros de cada coluna informada na
cláusula Where
Banco de dados -‐ Deletando � Para deletar um ou mais registros, basta chamar o método delete da classe SQLiteDatabase
db.delete(“funcionarios", "_id=?", new String[]{“20"});
Banco de dados – Busca � Para efetuar a busca no banco de dados é necessário 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 função query
Cursor cursor = db.query(“funcionarios", new String[] { "_id", "nome", "funcao" }, "nome=?", new String[] { "Marcelo" }, null, null, null);
Colunas que deverão retornar no resultado. Caso passe null todas serão retornadas
Cláusula Where
Parametro da cláusula Where
group by having order by
SharedPreferences � SharedPreference pode ser usado como uma opção de armazenamento de informações. Os dados são salvos em arquivos do sistema, onde tudo é gerenciado pela API SharedPreferences.
� Para salvar informações 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 métodos para a manipulação de arquivos: � openFileInput(String) retorna FileInputStream � openFileOutput(String, mode) retorna FileOutputStream
� deleteFile(name) retorna boolean � getFileStreamPath(name) retorna File