Inicia-se a produção do Caderno de Atividades sob a sua responsabilidade.
|
|
- Lucas Natal Candal
- 5 Há anos
- Visualizações:
Transcrição
1 Prezado (a) Autor(a), Inicia-se a produção do Caderno de Atividades sob a sua responsabilidade. Atente-se para as informações que lhe foram passadas, através do Manual do Autor, Template, Ambiente de Capacitação e Formatação de Questões. Abaixo você encontrará o padrão deste caderno. As letras em vermelho devem ser substituídas pela sua produção. As pretas devem ser mantidas onde e como estão. As verdes são lembretes ao longo do material, para auxiliá-lo nesta produção. Ao final do template, será encontrada a seção de exemplos para auxiliá-lo na construção do Caderno de Atividades. As letras verdes e os exemplos devem ser retirados antes do envio deste arquivo à Gerência de Produção e Conteúdo.. Observe o padrão de nomenclatura dos arquivos. Lembre-se: Utilize a linguagem dialógica. Respeita as quantidades solicitadas em cada item. Não faça questões colaborativas (Ex: reúna-se em grupo, discuta com seus colegas, em dupla responda, entre outras). Dúvidas ao longo do processo de produção procure o gestor do seu caderno. Desejamos a você um excelente trabalho! Regina Cláudia da Silva Fiorin Diretoria de Desenvolvimento de EaD
2 TEMPLATE CADERNO DE ATIVIDADES /1 Como citar esse material: CAMPOS, Edilene Aparecida Veneruchi. Programação em dispositivos móveis: Introdução à programação para Android. Caderno de Atividades. Valinhos: Anhanguera Educacional, Uma necessidade muito comum a qualquer tipo de aplicação, para dispositivos móveis ou não é a persistência de dados. O termo persistência de dados está relacionado com a habilidade da aplicação de gravar dados importantes para o usuário em algum meio de armazenamento permanente, como o disco. Assim, mesmo após o encerramento da execução da aplicação ou do desligamento do dispositivo, os dados poderão ser recuperados. Os meios de persistência mais utilizados são os arquivos e as tabelas de bancos de dados. As aplicações desenvolvidas para android têm à disposição algumas maneiras de persistir dados. Aqui abordaremos persistência de dados usando: o objeto SharedPreferences; armazenamento interno; armazenamento externo; base de dados SQLite. Usar o objeto SharedPreferences significa é utilizado quando a aplicação tem necessidade de gravar poucos dados. Esta estratégia permite o armazenamento de pares de valores (chave, valor). Estratégia indicada para gravação de dados de configuração.
3 Usar armazenamento interno permite gravar dados na memória interna do dispositivo. Desta forma os dados tem uso privado à própria aplicação, não ficando visível a outras aplicações. Já o armazenamento externo permite gravar dados em um cartão de memória (SD). Desta forma, todos os dados poderão ser acessados. O banco de dados SQLite permite que os dados fiquem privados à aplicação, sendo tratados por um sistema gerenciador de dados relacionais. Por ser relacional, os dados devem ter características que os permitam ser organizados em tabelas (linhas e colunas). Network connection significa que o armazenamento será feito em um servidor web. Persistência de dados Trataremos das possíveis formas de persistência de dados em aplicações para android. 1) Usando SharedPreferences Quando se utiliza a gravação usando as preferências compartilhadas, devese fazer uso de um objeto da classe SharedPreferences. Este objeto permite a persistência dos dados usando um par (chave, valor). Os pares ficam gravados em um arquivo XML. Como começar a utilizar as preferências compartilhadas deve-se criar um objeto, conforme apresentado a seguir apropriado. Se a activity necessitar de um único arquivo de preferências compartilhadas não é necessário informar o nome do arquivo. Deve-se informar apenas o modo de permissão de acesso liberado. Assim, pode-se usar:
4 SharedPreferences prefs = getpreferences(modo); Entretanto, se houver a necessidade de trabalhar com mais de um arquivo de preferências compartilhadas, deve-se informar o nome do arquivo desejado. Conform a seguir. SharedPreferences prefs = getsharedpreferences(nome,modo); O parâmetro nome indica o nome indica o nome do arquivo que armazenará as preferências compartilhadas (lembrando que uma aplicação pode utilizar vários arquivos) e o modo indica a permissão de acesso ao arquivo de preferências compartilhadas. Os principais modos de acesso são: MODE_APPEND gravará novos dados em um arquivo de preferências já existentes; MODE_PRIVATE define que o arquivo contendo as preferências gravadas poderá ser acessado apenas pela aplicação. MODE_WORLD_READABLE permite que outras aplicações leiam as preferências gravadas. MODE_WORLD_WRITEABLE permite que outras aplicações leia e gravem dados no arquivo de preferência. As gravações podem ser feitas no arquivo de preferências usando a classe SharedPreferences.Editor. Assim: Editor editor = prefs.edit(); editor.putstring("chave", "valor"); editor.commit(); Além do putstring() existem outros métodos na classe Editor que permitem a manipulação de dados contidos nas preferências compartilhadas. Alguns deles são: clear() remove todos os valores do editor
5 commit() confirma as gravações. remove(string chave) remove o valor associado à chave passada como parâmetro. putlong(string chave, long valor) salva um valor do tipo long nas preferências compartilhadas. putint(string chave, int valor) salva um valor do tipo int nas preferências compartilhadas. putfloat(string chave, float valor) salva um valor do tipo float nas preferências compartilhadas. putboolean(string chave, boolean valor) salva um valor do tipo boolean nas preferências compartilhadas. Para ler os valores gravados no arquivo de preferências compartilhadas deve-se realizar procedimento assim: prefs.getstring( chave, Valor_default ); Na linha acima, caso haja uma chave idêntica a chave, seu valor será retornada. Se chave não existir no arquivo de preferências será retornado o valor_default. Além do getstring(), existem outros métodos para recuperar dados: getboolean(string chave, boolean valor_default) recupera um valor boolean correspondente á chave informada. Se a chave não estiver cadastrada será retornado o valor_default informado. getfloat(string chave, float valor_default) recupera um valor float correspondente á chave informada. Se a chave não estiver cadastrada será retornado o valor_default informado. getint(string chave, int valor_default) recupera um valor int correspondente á chave informada. Se a chave não estiver cadastrada será retornado o valor_default informado.
6 getlong(string chave, long valor_default) recupera um valor long correspondente á chave informada. Se a chave não estiver cadastrada será retornado o valor_default informado. Apresentaremos esta estratégia de persistência, através de um projeto. 1) Criar um novo projeto android (no exemplo o projeto se chama Tema3_Ex2, com pacote com.exercicios.tema3_ex2). 2) Atualize o arquivo activity_main.xml (em res/layout) para que fique conforme mostrado a seguir: <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.exercicios.tema3_ex2.mainactivity" > <TextView android:id = "@+id/mensagem" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerhorizontal = "true" android:layout_centervertical = "true" /> <Button android:id = "@+id/bt_gravar" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_below = "@id/mensagem" android:layout_centerhorizontal = "true" /> </RelativeLayout> 3) Atualize a classe MainActivity.java para que fique conforme mostrado a seguir. package com.exercicios.tema3_ex2; import com.example.tema3_ex2.r; import android.app.activity ; import android.content.intent ; import android.content.sharedpreferences ; import android.os.bundle ; import android.view.view ;
7 import android.view.view.onclicklistener ; import android.widget.button ; import android.widget.textview ; public class MainActivity extends Activity final static String PREFS = "arquivo1_pref" ; final static String ACESSO = "acesso" public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate) ; protected void onresume () super.onresume(); SharedPreferences prefs = getsharedpreferences(prefs, MODE_PRIVATE); String data = prefs.getstring(acesso, null); TextView msg = (TextView)findViewById(R.id.mensagem); Button addnamebutton = (Button) findviewbyid(r.id.bt_gravar); if (data!= null) msg.settext("ultimo acesso em: " + data); addnamebutton.settext("retomar a aplicação..."); else msg.settext("nunca acessou a aplicação!"); addnamebutton.settext ("Iniciar a aplicação..."); addnamebutton.setonclicklistener(new OnClickListener public void onclick (View v) Intent intent = new Intent(MainActivity.this, GravadoraDeDados.class); startactivity(intent); ); 4) Crie um arquivo chamado grava.xml em res/layout, e nele acrescente o conteúdo a seguir. <?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android = " android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical"> <TextView android:id = "@+id/texto" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:text = "@string/lb_texto" /> <Button
8 android:id = "@+id/bt_voltar" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "@string/voltar"/> </LinearLayout> 5) Crie uma classe chamada GravadoraDeDados.java com conteúdo conforme mostrado a seguir. package com.exercicios.tema3_ex2; import java.text.simpledateformat; import java.util.date; import com.example.tema3_ex2.r; import android.app.activity ; import android.content.sharedpreferences; import android.content.sharedpreferences.editor; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; public class GravadoraDeDados extends Activity private SharedPreferences prefs protected void oncreate ( Bundle savedinstancestate ) super.oncreate(savedinstancestate); setcontentview (R.layout.grava_nome); prefs = getsharedpreferences(mainactivity.prefs,mode_private); Button btvoltar = (Button) findviewbyid (R.id.bt_voltar); btvoltar.setonclicklistener (new OnClickListener public void onclick (View v) SimpleDateFormat dateformat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss"); String dataacesso = dateformat.format(new Date()); Editor editor = prefs.edit(); editor.putstring(mainactivity.acesso, dataacesso); editor.commit(); finish(); ) ; 6) Altere o conteúdo do arquivo strings.xml (em res/value) acrescentando as linhas a seguir. <string name = "nome">nome: </string > <string name = "voltar">voltar</string>
9 <string name = "lb_texto">quando clicar no botão voltar a data e hora de acesso serão atualizadas.</string> 7) Atualize o arquivo AndroidManifest.xml para que fique assim: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.example.tema3_ex2" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="21" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.exercicios.tema3_ex2.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher"/> </intent-filter> </activity> <activity android:name="com.exercicios.tema3_ex2.gravadoradedados"/> </application> </manifest> 2)Usando gravação interna (internal storage) É possível gravar dados em arquivos armazenados na memória interna do aparelho. Tais dados são acessados apenas pela aplicação. Assim, se a aplicação for desinstalada, tais dados são removidos. Neste tipo de persistência, os dados ficam gravados em arquivos e não precisam formar pares (chave, valor). Assim, podem-se gravar textos, por exemplo. Para isso, a aplicação pode fazer uso das classes disponíveis em java.io. Para acessar um arquivo de dados utiliza-se a classe FileOutputStream, que cria um caminho virtual até o arquivo.
10 Para que seja possível realizar a gravação em um arquivo interno é necessário: a) Para abrir um arquivo, deve-se utilizar o método openfileoutput(nome_arquivo, modo), que consegue abrir um determinado arquivo indicado em nome_arquivo com permissão de acesso definida pelo modo de abertura utilizado. FileOutputStream arq = openfileoutput( dados.txt, MODE_WORLD_WRITEABLE); Os principais modos de abertura podem ser APPEND, MODE_WORLD_WRITEABLE, MODE_WORLD_READABLE. b) A gravação é feita por meio de um objeto da classe OutputStreamWriter, que permite acessar o arquivo através do caminho virtual para gravações. OutputStreamWriter gravador = new OutputStreamWriter(arq); gravador.write(cadeia_de_caracteres); Para que seja possível realizar a leitura de dados de um arquivo interno é necessário: a) Para abrir um arquivo para leitura, deve-se utilizar o método openfileinput(nome_arquivo), que estabelece um caminho virtual com o arquivo indicado em nome_arquivo, definindo permissão para leitura dos dados. FileInputStream arq = openfileinput("dados.txt"); b) A leitura é feita por meio de um objeto da classe InputStreamReader, que acessa o arquivo e lê uma quantidade de caracteres. InputStreamReader leitor = new InputStreamReader(arq); Apresentaremos esta estratégia de persistência, através de um projeto. A aplicação disponibiliza botões para Gravar dados em um arquivo (apagando o que eventualmente já estiver gravado), Acrescentar dados em um
11 arquivo, ao final do conteúdo que eventualmente já esteja gravado; Limpar o arquivo, apagando todo o conteúdo que eventualmente estivesse gravado; e Mostrar o conteúdo já gravado no arquivo. 1) Criar um novo projeto android (no exemplo o projeto se chama Tema3_internal, com pacote com.exercicios.tema3_internal). 2) Atualize o arquivo activity_main.xml (em res/layout) para que fique conforme mostrado a seguir: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.exercicios.tema3_internal.mainactivity" > <TextView android:id = "@+id/orientacao" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text="@string/lb_orientacao" android:layout_centerhorizontal = "true" /> <EditText android:id="@+id/entrada" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below = "@id/orientacao" android:layout_centerhorizontal = "true" /> <Button android:id = "@+id/bt_gravar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_gravar" android:layout_below = "@id/entrada" android:layout_centerhorizontal = "true" /> <Button android:id = "@+id/bt_acrescentar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_acrescentar" android:layout_below = "@id/bt_gravar" android:layout_centerhorizontal = "true" />
12 <Button android:id = "@+id/bt_limpar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_limpar" android:layout_below = "@id/bt_acrescentar" android:layout_centerhorizontal = "true" /> <Button android:id = "@+id/bt_mostrar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_mostrar" android:layout_below = "@id/bt_limpar" android:layout_centerhorizontal = "true" /> </RelativeLayout> 3) Atualize a classe MainActivity.java para que fique conforme mostrado a seguir. package com.exercicios.tema3_internal; import android.app.activity; import android.view.view; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstreamwriter; import android.os.bundle; import android.widget.button; import android.widget.edittext; public class MainActivity extends Activity private EditText public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); caixadetexto = (EditText) findviewbyid(r.id.entrada); Button btgravar = (Button) findviewbyid(r.id.bt_gravar); Button btacrescentar = (Button) findviewbyid(r.id.bt_acrescentar); Button btlimpar = (Button) findviewbyid(r.id.bt_limpar); Button btmostrar = (Button) findviewbyid(r.id.bt_mostrar); btgravar.setonclicklistener(new View.OnClickListener() public void onclick(view v) String str = caixadetexto.gettext().tostring(); try FileOutputStream arq = openfileoutput("dados.txt", MODE_WORLD_WRITEABLE); OutputStreamWriter gravador = new OutputStreamWriter(arq); gravador.write(str); gravador.flush();
13 ); gravador.close(); caixadetexto.settext(""); catch (IOException ex) ex.printstacktrace(); btacrescentar.setonclicklistener(new View.OnClickListener() public void onclick(view v) String str = caixadetexto.gettext().tostring(); try FileOutputStream arq = openfileoutput("arquivo.txt", MODE_APPEND); OutputStreamWriter gravador = new OutputStreamWriter(arq); gravador.write(str); gravador.flush(); gravador.close(); caixadetexto.settext(""); catch (IOException ex) ex.printstacktrace(); ); btlimpar.setonclicklistener(new View.OnClickListener() public void onclick(view v) try FileOutputStream arq = openfileoutput("dados.txt", MODE_WORLD_WRITEABLE); OutputStreamWriter gravador = new OutputStreamWriter(arq); gravador.write(""); gravador.flush(); gravador.close(); caixadetexto.settext(""); catch (IOException ex) ex.printstacktrace(); ); btmostrar.setonclicklistener(new View.OnClickListener() public void onclick(view v) try FileInputStream arq = openfileinput("dados.txt"); InputStreamReader leitor = new InputStreamReader(arq); char[] entrada = new char[100]; String saida = ""; int c; while ((c = leitor.read(entrada))>0)
14 String cadeia = String.copyValueOf(entrada, 0, c); saida = saida + cadeia; entrada = new char[100]; caixadetexto.settext(s); catch (IOException ex) ex.printstacktrace(); ); 6) Altere o conteúdo do arquivo strings.xml (em res/value) acrescentando as linhas a seguir. <string name="lb_orientacao">digite um texto qualquer:</string> <string name="bt_gravar">gravar</string> <string name="bt_acrescentar">acrescentar</string> <string name="bt_limpar">limpar</string> <string name="bt_mostrar">mostrar</string> Ao executar a aplicação será mostrada uma tela como esta: 3)Usando gravação externa (external storage) Além de gravar dados na memória interna de um dispositivo móvel, podemos armazená-los, externamente, com em cartões SD.
15 Para isso, Environment que, através do método getexternalstoragedirectory() armazenamento externo. fornece o caminho completo do A seguir, temos o exemplo de uma aplicação que consegue gravar e ler dados armazenados de um arquivo gravado em memória externa. Neste exemplo temos uma aplicação que disponibiliza botões para Gravar dados em memória externa (apagando o que eventualmente já estiver gravado) e Mostrar dados gravados na memória externa. 1) Criar um novo projeto android (no exemplo o projeto se chama Tema3_external, com pacote com.exercicios.tema3_external). 2) Atualize o arquivo activity_main.xml (em res/layout) para que fique conforme mostrado a seguir: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.exercicios.tema3_external.mainactivity" > <TextView android:id = "@+id/orientacao" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text="@string/lb_orientacao" android:layout_centerhorizontal = "true" /> <EditText android:id="@+id/entrada" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below = "@id/orientacao" android:layout_centerhorizontal = "true" /> <Button android:id = "@+id/bt_gravar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_gravar" android:layout_below = "@id/entrada"
16 android:layout_centerhorizontal = "true" /> <Button android:id = "@+id/bt_mostrar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_mostrar" android:layout_below = "@id/bt_gravar" android:layout_centerhorizontal = "true" /> </RelativeLayout> 3) Atualize a classe MainActivity.java para que fique conforme mostrado a seguir. package com.exercicios.tema3_external; import android.app.activity; import android.view.view; import java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstreamwriter; import android.os.bundle; import android.os.environment; import android.widget.button; import android.widget.edittext; public class MainActivity extends Activity private EditText public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); caixadetexto = (EditText) findviewbyid(r.id.entrada); Button btgravar = (Button) findviewbyid(r.id.bt_gravar); Button btmostrar = (Button) findviewbyid(r.id.bt_mostrar); btgravar.setonclicklistener(new View.OnClickListener() public void onclick(view v) String str = caixadetexto.gettext().tostring(); try File sdcard = Environment.getExternalStorageDirectory(); File directory = new File (sdcard.getabsolutepath() + "/arquivos"); directory.mkdirs(); File arq = new File(directory, "dados.txt"); FileOutputStream streamout = new FileOutputStream(arq); OutputStreamWriter gravador = new OutputStreamWriter(streamOut); gravador.write(str); gravador.flush();
17 gravador.close(); caixadetexto.settext(""); catch (IOException ex) ex.printstacktrace(); ); btmostrar.setonclicklistener(new View.OnClickListener() public void onclick(view v) try File sdcard = Environment.getExternalStorageDirectory(); File directory = new File (sdcard.getabsolutepath() + "/arquivos"); File arq = new File(directory, "dados.txt"); FileInputStream streamin = new FileInputStream(arq); InputStreamReader leitor = new InputStreamReader(streamIn); char[] entrada = new char[100]; String saida = ""; int c; while ((c = leitor.read(entrada))>0) String cadeia = String.copyValueOf(entrada, 0, c); saida = saida + cadeia; entrada = new char[100]; caixadetexto.settext(saida); leitor.close(); catch (IOException ex) ex.printstacktrace(); ); 6) Altere o conteúdo do arquivo strings.xml (em res/value) acrescentando as linhas a seguir. <string name="lb_orientacao">digite um texto qualquer:</string> <string name="bt_gravar">gravar</string> <string name="bt_mostrar">mostrar</string> 7) Altere o conteúdo do arquivo Androidmanifest.xml para que fique assim: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.exercicios.tema3_external" android:versioncode="1" android:versionname="1.0" >
18 <uses-sdk android:minsdkversion="8" android:targetsdkversion="21" /> <uses-permission android:name="android.permission.write_external_storage"> </uses-permission> <application android:allowbackup="true" > <activity android:name=".mainactivity" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher"/> </intent-filter> </activity> </application> </manifest> Ao executar a aplicação será mostrada uma tela como esta: 4)Usando BD SQLite Permite que a aplicação trabalhe com um conjunto de dados relacionais. O BD criado para o aplicativo ficará restrito ao seu próprio uso, não sendo visível para outras aplicações. O Android fornece suporte nativo ao sistema de banco de dados SQLite, que é bastante simples e consome poucos recursos. Para um projeto trabalhar com SQLite, é necessário:
19 a) Criação de uma classe que estenda a classe SQLiteOpenHelper Nesta classe deverá fornecer implementações que sobreponham os métodos herdados: oncreate() que cria a base de dados quando a aplicação é instalada. onupdade() que atualiza a base de dados para novas versões. A classe SQLiteOpenHelper também oferece dois métodos responsáveis por obter uma instância do banco de dados com o qual se deseja trabalhar em mode de leitura e de escrita. São eles getwritabledatabase() e getreadabledatabase(). Além disso, é importante criar métodos responsáveis por acessar o banco de dados realizando, consultas, inserções, alterações e remoções. Glossário: BD Bando de dados ou Base de dados. SQLite Banco de dados relacional disponibilizado nativamente pelo android. Storage Armazenamento de dados de forma persistente.
20 Entenda como utilizar gravação utilizando Shared Preferences assistindo ao vídeo SharedPreferences no Android, Entendendo e Utilizando. Disponível em Tempo: 37:05 Analise um exemplo de aplicações realizando persistência de dados com SharedePreferences e em armazenamento interno lendo TUTORIAL Android Parte 4 Persistência de Dados. Disponível em persistencia-de-dados. Entenda como realizar persistência de dados usando banco de dados SQLite assistindo ao vídeo SQLite no Android, Entendendo e Utilizando. Disponível em Tempo: 30:36
21 Instruções: Questão 1: Considerando o que foi estudado no tema anterior sobre activity, views, event handlers e event listeners, criar uma aplicação contendo radio buttom que representem as estações climáticas do ano. Além disso, a tela deverá mostrar 2 botões: Confirmar e Encerrar. Ao clicar no botão Confirmar, mostrar a estação do ano escolhida pelo cliente. Ao clicar no botão Encerrar, finalizar a execução da aplicação. A seguir está mostrado layout do que é desejado.
22 Questão 2: A forma de persistência de dados que permite a gravação de pares (chave, valor) é: a) Internal Storage b) External Storage c) SharedPreferences d) Banco de dados SQLite e) ClosedPreferences Questão 3: Para se trabalhar com um banco de dados SQLite deve-se estender uma determinada classe, e nela sobrescrever os métodos oncreate() e onupdate(). Assinale a alternativa que contém o nome da classe que deve ser estendida. a) SQLiteDataBase b) SQLiteManager c) SQLiteNewHelper d) SQLiteOpenHelper e) SQLiteInstructions
23 Questão 4: Neste tema foram estudadas diferentes formas de aplicações para android persistirem dados. Apresente situações em que o uso da persistência por SharedPreferences, Internal Storage e External Storage são indicadas. Questão 5: Desenvolva uma aplicação que trabalhe com um banco dados SQLite chamado empresa. Neste banco, criar uma tabela chamada pessoas, cujas colunas são: código (auto-incremento) e nome (texto não nulo). A aplicação deve ter uma activity que permita gravar dados de uma pessoa e mostrar os dados já cadastrados. A seguir estão apresentado layout do que se deseja.
24 Finalizando: Neste tema você estudos conceitos importantíssimos no desenvolvimento de aplicações para dispositivos móveis utilizando android. A apresentação de widgets e o tratamento dos eventos decorrentes das ações dos usuários são itens indispensáveis a qualquer aplicação. Neste momento é importante destacar que conceitos de programação orientada a objetos são imprescindíveis, pois permitem ao desenvolvedor utilizar ao máximo os recursos fornecidos pelo framework. REFERÊNCIAS LEE, Wei-Meng, Introdução ao Desenvolvimento de Aplicativos para o Android. 1.ed. Rio de Janeiro: Ciência Moderna, CALOPSITA, Thiengo. SharedPreferences no Android, Entendendo e Utilizando. Disponível em: Acesso em: 05 set CALOPSITA, Thiengo. SQLite no Android, Entendendo e Utilizando. Disponivel em: < Acesso em: 05 set
25 K19. Desenvolvimento Mobile com Android. Disponível em: < desenvolvimento-mobile-com-android>. Acesso em: 05 set MOBILTEC. TUTORIAL Android Parte 4 Persistência de Dados. Disponível em: < Acesso em 05 set GABARITO- Aula 3: Persistência de dados Tema 3: Persistência de dados Questão 1: 1) Criar um novo projeto android (nesta resolução foi criado um projeto chamado tema3_ex1, no pacote com.exercicios.tema3_ex1). 2) Na pasta res/layout alterar o arquivo activity_main.xml para que ele fique conforme apresentado a seguir. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent"
26 android:layout_height="fill_parent" android:orientation="vertical" > <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" /> </RadioGroup> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 3) Alterar o conteúdo da classe MainActivity.java para que fique assim: package com.exercicios.tema3_ex1; import android.app.activity; import android.os.bundle;
27 import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.radiobutton; import android.widget.radiogroup; import android.widget.toast; public class MainActivity extends Activity private RadioGroup radiogroupid; private RadioButton radiogenderbutton; private Button bt_confirmar; private Button public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); addbuttonlistener(); public void addbuttonlistener() radiogroupid = (RadioGroup) findviewbyid(r.id.radioestacoesdoano); bt_confirmar = (Button) findviewbyid(r.id.bt_confirmar); bt_fechar = (Button) findviewbyid(r.id.bt_fechar); bt_confirmar.setonclicklistener(new public void onclick(view v) int selectedoption = radiogroupid.getcheckedradiobuttonid(); radiogenderbutton = (RadioButton) findviewbyid(selectedoption); Toast.makeText(MainActivity.this, "Você escolheu " + radiogenderbutton.gettext(), Toast.LENGTH_SHORT).show(); ); bt_fechar.setonclicklistener(new public void onclick(view v) finish(); ); 4) Em res/values alterar o arquivo string.xml acrescentando as linhas a seguir. <string name="lb_primavera">primvera</string> <string name="lb_verao">verao</string> <string name="lb_outono">outono</string>
28 Questão 2: <string name="lb_inverno">inverno</string> <string name="lb_confirmar">confirme a escolha</string> <string name="lb_fechar">encerrar a aplicação</string> Alternativa correta: C Armazenamento de dados no formato de um par (chave, valor) deve ser feito através de SharedPreferences. Importante salientar que tais dados gravados através desta estratégia ficarão restritos à aplicação que os criou. Questão 3: Alternativa correta: D SQLiteOpenHelper é uma classe que permite a manipulação de um banco de dados SQLite. Para ser usada, ela deve ser estendida por alguma outra classe da aplicação, na qual os métodos oncreate() e onupdate() serão sobrepostos. O método oncreate() é executado para criar um banco de dados. Isto pode acontecer quando a aplicação for executada pela primeira vez ou nos casos em que o banco de dados tenha sido eliminado. Já o método onupdate() será executado toda vez que houver diferença na versão do banco. Normalmente existe a necessidade de executar o onupadate() quando há atualização de versão da aplicação. Dentro do método onupdate() a aplicação pode executar qualquer alteração necessária no banco de dados. Questão 4: Persistência de dados usando ShredPreferences é indicado quando se deseja armazenar dados que podem ser representados em pares (chave, valor). Este tipo de dado é interessante quando se deseja gravar configurações do
29 usuário, como: nome, tema do plano de fundo, tipo de letra, cor de botão, data do último acesso, etc. Persistência de dados usando Internal Storage pode ser usada para gravar dados não estruturados que o usuário tem necessidade de registrar e que não serão compartilhados por outras aplicações. Pode ser um lembrete, uma anotação. Não existe uma pré-estruturação dos dados que podem ser gravados. Persistência de dados usando External Storage pode ser usada quando existe a necessidade de compartilhar dados com outros usuários ou outras aplicações. Nestas situações realizar gravações em um meio externo, como um cartão SD, pode ser uma excelente estratégia. Questão 5: 1) Criar um novo projeto android (nesta resolução foi criado um projeto chamado Tema3_sqlite, no pacote com.exercicios.tema3_sqlite). 2) Alterar o conteúdo do arquivo activity_main.xml (na pasta res/layout) para que seu conteúdo fique conforme apresentado a seguir. <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/lb_nome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lb_nome"> <requestfocus /> </TextView> <EditText android:id="@+id/txt_nome" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" /> <Button android:id="@+id/bt_gravar" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/lb_gravar" /> <Button android:id="@+id/bt_mostrar" android:layout_width="match_parent"
30 android:layout_height="wrap_content" /> </LinearLayout> 3) Em res/values, alterar o arquivo string.xml acrescentando as linhas a seguir. <string name="lb_gravar">gravar</string> <string name="lb_mostrar">mostrar</string> <string name="lb_nome">digite um nome: </string> 4) Alterar o conteúdo da classe MainActivity.java, deixando-o conforme apresentado a seguir. package com.exercicios.tema3_sqlite; import android.app.activity; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.toast; import android.database.cursor; public class MainActivity extends public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); final AcessoBanco db = new AcessoBanco(this); final EditText txtnome=(edittext)findviewbyid(r.id.txt_nome); Button btgravar = (Button) findviewbyid(r.id.bt_gravar); Button btmostrar = (Button) findviewbyid(r.id.bt_mostrar); btgravar.setonclicklistener(new View.OnClickListener() public void onclick(view v) String novonome = txtnome.gettext().tostring(); db.open(); db.inserepessoa(novonome); db.close(); txtnome.settext(""); mostraregistro("inserção realizada com sucesso. "); ); btmostrar.setonclicklistener(new View.OnClickListener() public void onclick(view v) db.open(); Cursor c = db.getcadastros(); if (c.movetofirst()) do mostraregistro(c);
31 ); while (c.movetonext()); db.close(); public void mostraregistro(cursor c) Toast.makeText(this, "Codigo: " + c.getstring(0) + "\n" + "Nome: " + c.getstring(1) + "\n", Toast.LENGTH_SHORT).show(); public void mostraregistro(string msg) Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); 5) Criar uma classe chamada Conexao.java, com o conteúdo mostrado a seguir. package com.exercicios.tema3_sqlite; import android.content.context; import android.database.sqlexception; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; import android.util.log; public class Conexao extends SQLiteOpenHelper private static final String TAG = "DBAdapter"; private static final String NOME_BD = "empresa"; private static final int DATABASE_VERSION = 2; private static final String DATABASE_CREATE = "create table pessoas (codigo integer primary key autoincrement, nome text not null);"; Conexao(Context context) super(context, NOME_BD, null, public void oncreate(sqlitedatabase db) try db.execsql(database_create); catch (SQLException e) e.printstacktrace();
32 @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) Log.w(TAG, "Atualizando banco de dados da versão " + oldversion + " para " + newversion + ". Todos os dados serão destruidos."); db.execsql("drop TABLE IF EXISTS pessoas"); oncreate(db); 6) Criar uma classe chamada AcessoBanco.java, com o conteúdo mostrado a seguir. package com.exercicios.tema3_sqlite; import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlexception; import android.database.sqlite.sqlitedatabase; public class AcessoBanco public static final String CODIGO = "codigo"; public static final String NOME = "nome"; private static final String NOME_BD = "empresa"; private static final String NOME_TABELA = "pessoas"; private final Context context; private Conexao conector; private SQLiteDatabase db; public AcessoBanco(Context ctx) this.context = ctx; conector = new Conexao(context); public AcessoBanco open() throws SQLException db = conector.getwritabledatabase(); return this; public void close() conector.close(); public long inserepessoa(string name) ContentValues initialvalues = new ContentValues(); initialvalues.put(nome, name); return db.insert(nome_tabela, null, initialvalues);
33 public boolean remmovepessoa(long cod) return db.delete(nome_tabela,codigo+"="+cod, null) > 0; public Cursor getcadastros() return db.query(nome_tabela, new String[] CODIGO, NOME, null, null, null, null, null); public Cursor getpessoa(long cod) throws SQLException Cursor mcursor = db.query(true, NOME_TABELA, new String[] CODIGO, NOME, CODIGO + "=" + cod, null, null, null, null, null); if (mcursor!= null) mcursor.movetofirst(); return mcursor; public boolean updatepessoa(long cod, String name, String ) ContentValues args = new ContentValues(); args.put(nome, name); return db.update(nome_bd, args, CODIGO + "=" + cod, null) > 0;
34
============================== Exemplo ListView MainActivity.java
FACULDADE DE TECNOLOGIA SENAC PELOTAS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Tópicos Avançados em ADS Edécio Fernando Iepsen ============================== Exemplo ListView
Leia maisLogin. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos
Criar uma nova Activity Observe no AndroidManifest.xml que foi criada a segunda Activity. Nesse arquivo: - defini-la como a primeira a ser executada (recortar o intent-filter da MainActivity para a Activity)
Leia maisTutorial Android Speech
Tutorial Android Speech O sistema operacional Android já dispõe de uma funcionalidade interna para síntese e reconhecimento de voz que pode ser incorporado a qualquer aplicação. Essa funcionalidade utiliza
Leia maisProgramação para Dispositivos Móveis. Banco de Dados (SQLite)
Programação para Dispositivos Móveis Banco de Dados (SQLite) SQLite O Android possui suporte nativo ao SQLite O SQLite é um mecanismo de banco de dados SQL incorporado. Ao contrário da maioria dos outros
Leia maisFirebase. Acesse o site https://firebase.google.com/?hl=pt-br Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta.
Firebase Acesse o site https://firebase.google.com/?hl=pt-br Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta. Adicione um projeto. Crie um projeto Para usar o Firebase num projeto
Leia maisCriando as primeiras telas (Activity)
File > New > New Project Observe o conteúdo dos arquivos MainActivity e activity_main.xml. Alterar strings.xml primeiro app Usar FindUsages para
Leia maisArmazenamento de dados
Armazenamento de dados Opções de Armazenamento Shared Preferences Mecanismo simples de armazenar pares de chavevalor Internal Storage Mecanismo para armazenar dados na memória do aparelho External Storage
Leia maisTrabalhando com Mensagens. File > New > New Project. Uso de mensagens (Toast) Luiz Eduardo Guarino de Vasconcelos
Trabalhando com Mensagens File > New > New Project Alterando o Título da ActionBar Alterar strings.xml exemplo1 exemplo1 - Guarino
Leia maisTUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS
TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS Uma activity é um componente do aplicativo que fornece uma tela com o qual os usuários podem interagir. Uma aplicação geralmente consiste de múltiplas activities,
Leia maisProgramação para Dispositivos Móveis
Prof. MSc. Flávio Barros flavioifma@gmail.com www.flaviobarros.com.br Programação para Dispositivos Móveis Aula: CRUD Agenda com SQLite Parte II Caxias - MA Projeto Android Estrutura Activity MainActivity.java
Leia maisProgramação de Dispositivos Móveis
Aula 04 Programação de Dispositivos Móveis A Classe Activity É obrigatório que cada activity do projeto esteja declarada no arquivo AndroidManisfest.xml, caso contrário não é possível utilizá-la. Para
Leia maisProgramação para Dispositivos Móveis
Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 05 Programando formularios, activities e intents. Dalton Martins dmartins@gmail.com São Paulo, Março, 2012
Leia maisProf: Ricardo Quintão Site:
Prof: Ricardo Quintão email: rgquintao@gmail.com Site: www.rgquintao.com.br Vamos agora criar o nosso terceiro projeto Android. Neste projeto realizaremos o cálculo do Índice de Massa Corporal. A aplicação
Leia maisAndroid Banco de Dados. Ivan Nicoli
Android Banco de Dados Ivan Nicoli SQLite O Android tem suporte ao SQLite (http://www.sqlite.org), um leve e poderoso banco de dados. Cada aplicação pode criar um ou mais banco de dados, que ficam localizados
Leia maisMensagens. Para conhecimento. Renomear arquivos. Botão Direito no arquivo > Rafactor > Rename Shift + F6
Mensagens Qual a finalidade da mensagem que é exibida para o usuário? - Toasts não necessariamente serão lidas pelos usuários pois aparecem e somem rapidamente. - Alerts são mensagens críticas para o usuário.
Leia mais1. SQLite No Android 2. API de Acesso Listagem 1 SQLiteDatabase SQLiteOpenHelper Listagem 1 Android Studio SQLiteOpenHelper Android Studio
1. SQLite No Android O SQLite é um banco de dados relacional open-source e fornece suporte para comandos SQL. Cada aplicação Android pode criar quantos bancos de dados desejar e eles irão ficar armazenados
Leia maisProgramação de Dispositivos Móveis
Aula 07 Programação de Dispositivos Móveis Interface Gráfica ListView com ArrayAdapter Um elemento muito utilizado em aplicativos é a ListView, com ela pode-se criar uma lista de objetos. A partir dos
Leia maisArmazenamento de Dados
Persistência... Armazenamento de Dados Diversas opções para armazenar dados da aplicação. A escolha de acordo com a necessidade: dados privados ou públicos, quantidade de espaço necessário, etc. 2 Armazenamento
Leia maisProgramação para Android. Aula 08: Persistência de dados SQL
Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente
Leia maisProgramação para Dispositivos Móveis
Programação para Dispositivos Móveis Professor Ariel da Silva Dias Desenvolvendo para Android Android Core Uma aplicação Android é formada por um conjunto de componentes; A este conjunto damos o nome de
Leia maisPrograma de Dispositivos Móveis
Aula 02 Programa de Dispositivos Móveis A Classe Activity A classe Actvity é similar a classe JFrame do Swing representa basicamente uma tela. Quase todas as atividades interagem com o usuário, então ela
Leia maisMais Elementos da Interface com o Usuário. Prof. Fellipe Aleixo
Mais Elementos da Interface com o Usuário Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Conteúdo Desenvolvimento de uma aplicação para registrar contatos e seus respec?vos telefones Algumas Classes
Leia maisApresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android
Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android Realização de Dinâmica Hands- On para Construção de uma App Android Dr. Eduardo Manuel de Freitas Jorge, PMP Realização de Dinâmica
Leia maisProf: Ricardo Quintão Site:
Prof: Ricardo Quintão email: ricardo.quintao@uva.br Site: www.rgquintao.com.br Vamos agora criar o nosso primeiro projeto Android. Na criação de um projeto novo, o ADT já cria um programa de exemplo que
Leia maisPROGRAMAÇÃO MOBILE Estudo de Caso
O desenvolvimento de software para dispositivos móveis diverge em vários aspectos do tradicional desenvolvimento de aplicações para desktop e Web. Quando no segundo caso não temos a preocupação com o tamanho
Leia maisMódulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ
Módulo 2 - Novas Activities Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Inserindo a segunda activity Para inserir uma nova activity basta clicar com o botão direito sobre o pacote,
Leia maisRetrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos
Retrofit Criar um novo projeto Selecionar a API Empty Activity MainActivity Finish. Adicionar Novas Dependências Menu File > Project Structure Modulo app > Aba Dependencies Clique em adicionar (+) no canto
Leia maisAvisos e Notificações aos Usuários
Avisos e Notificações aos Usuários Caixa de Diálogos Pequena janela que solicita ao usuário tomar uma decisão ou inserir informações adicionais. Não preenche toda a tela Utilizado em eventos modais, requerem
Leia maisIntrodução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ
Introdução ao Android SECAP 2014 Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode baixar e modificar Máquina
Leia maisANDROID APRENDIZ. Um guia para iniciantes Crie seu primeiro aplicativo Android
ANDROID APRENDIZ Um guia para iniciantes Crie seu primeiro aplicativo Android Fillipe Cordeiro Um guia para iniciantes Crie seu primeiro aplicativo Android Sumário #1 Passo: Introdução a Plataforma Android
Leia maisPrimeira Aplicação Android Olá Mundo. Prof. Fellipe Aleixo
Primeira Aplicação Android Olá Mundo Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Conteúdo Passo- a- passo de um Projeto Android Conceitos Básicos de uma Aplicação Principais Arquivos Execução da
Leia maisArmazenamento em Banco de Dados em Aplicações Android. Prof. Fellipe Aleixo
Armazenamento em Banco de Dados em Aplicações Android Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Opções de Armazenamento Shared Preferences Armazenamento de pares chave- valor Internal Memory UAliza
Leia maisIntrodução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ
Introdução ao Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode
Leia maisProgramando Intenções. Prof. Fellipe Aleixo
Programando Intenções Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Conteúdo Desenvolvimento de uma aplicação para registrar contatos (nome e telefones) e realizar chamadas Intent (intenções) Aplicações
Leia maisTutorial: Utilização do sqlite no Android (Parte I)
Tutorial: Utilização do sqlite no Android (Parte I) Date : 7 de Abril de 2012 Por Mário Baltazar para o Pplware Tutorial realizado no âmbito do Mestrado em Computação Móvel do Instituto Politécnico da
Leia maisPrograma de Dispositivos Móveis
Aula 02 - Exercício Programa de Dispositivos Móveis PDM - Aula02 - Exercício- Ver 02-04/06/2014 08:56 Criando Aplicação Android (BasicView) Vamos continuar a criar interfaces gráficas (UI) básicas com
Leia maisNavegar entre páginas Necessário o uso de Intent. Intenção de ir a algum lugar, acessar outros recursos, outros apps.
Navegar entre páginas Necessário o uso de Intent. Intenção de ir a algum lugar, acessar outros recursos, outros apps. Alterar o oncreate dentro de LoginActivity.java, para chamar uma próxima Activity.
Leia maisTutorial sobre criação de regras de negócio para Android. Igor Rafael Santos da Silva
Tutorial sobre criação de regras de negócio para Android Igor Rafael Santos da Silva Este tutorial dará atenção à criação de regras de negócio em um ambiente de desenvolvimento Android. Primeiramente,
Leia maisComputação Móvel Persistência (Ref. Cap. 18)
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Computação Móvel Persistência (Ref. Cap. 18) Vicente Amorim vicente.amorim.ufop@gmail.com Sumário * SharedPreferences *
Leia maisAndroid Core. Felipe Silveira felipesilveira.com.br. Aula 6
Android Core Felipe Silveira felipesilveira.com.br Aula 6 Aplicações I Desenvolvimento de Aplicações Android SDK SDK https://developer.android.com/sdk Android SDK Android SDK: Eclipse + ADT plugin + Android
Leia maisFragments. Criar um novo projeto. Selecionar a API. Navigation Drawer Activity. Fragments. Luiz Eduardo Guarino de Vasconcelos
Criar um novo projeto Selecionar a API Navigation Drawer Activity MainActivity Finish. Adicionar as Dependências do ButterKnife. butterknife butterknife-compiler. Veja o tutorial do ButterKnife no site.
Leia maisDesenvolvimento de Aplicativos Android
Desenvolvimento de Aplicativos Android Criando uma Interface Simples A partir do diretório res/layout/ abra o activity_main.xml. Este arquivo XML define o layout da sua activity. Ele contém o texto padrão
Leia maisUniversidade Federal do Paraná
Universidade Federal do Paraná Departamento de Informática Ciência da Computação Tópicos em Sistemas Embarcados Android Prof. Eduardo Todt 2016 objetivos Com Android studio criar primeira app Projetar
Leia maisPROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB
PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB Aluno: Pedro Paulo S. Freitas Orientador: Ricardo Augusto Rabelo Sumário Introdução Motivação e Justificativa Trabalhos relacionados Plataforma
Leia maisCurso de Android - 2 Novas Activities. SECAP Prof. Rone Ilídio - UFSJ
Curso de Android - 2 Novas Activities SECAP Prof. Rone Ilídio - UFSJ Inserindo a segunda activity Inserindo a segunda activity Criaremos uma aplicação com duas telas onde ao clicar o botão de uma chama-se
Leia maisAndroid Layout Manager. Ivan Nicoli
Android Layout Manager Ivan Nicoli Classe View A classe android.view.view é a classe mãe de todos os componentes visuais do Android. Qualquer desenvolvedor pode criar seu próprio componente herdando a
Leia maisMódulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ
Módulo 4 - Interface Gráfica Gerenciadores de Layout Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Classe View Todos os componente gráficos são filhos de View Para se criar um novo componente
Leia maisMódulo 3 - Intenções. SECAP 2014 Prof. Rone Ilídio - UFSJ
Módulo 3 - Intenções SECAP 2014 Prof. Rone Ilídio - UFSJ Intenção é um pedido que uma aplicação faz ao Android O Android executa intenções Um intenção pode ser utilizada para: Uma mensagem para o SO Abrir
Leia maisProgramação para a Plataforma Android Aula 13. Localização
Programação para a Plataforma Android Aula 13 Localização O que são serviços baseados em localização? Como usar a API de mapas do Google? Como sobrepor diferentes visões a um mapa? Como integrar o mapa
Leia maisComunicação entre A0vidades
Programação para a Plataforma Android Aula 8 Comunicação entre A0vidades Como invocar uma a0vidade a par0r de outra? Como descrever um serviço em Android? Como duas a0vidades se comunicam? Como abrir uma
Leia maisProgramação para a Plataforma Android Aula 11. Banco de Dados
Programação para a Plataforma Android Aula 11 Banco de Dados Introdução a linguagem SQL O banco de dados SQLite Como criar e manipular um banco de dados em Android Como apresentar dados na tela do aparelho
Leia maisGoogle Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai. Esse livro está à venda em
Google Android Uma abordagem prática e didática Rafael Guimarães Sakurai Esse livro está à venda em http://leanpub.com/google-android Essa versão foi publicada em 2018-03-02 Esse é um livro Leanpub. A
Leia maisIntrodução ao Desenvolvimento para Sistema Operacional Android
Dr. prof.sylvio@fatecriopreto.edu.br Conteúdo: 1) Introdução ao Android e Mercado de Dispositivos Móveis; 2) Plataforma: 2.1) Arquitetura; 2.2) Framework; 2.3) Bibliotecas; 2.4) Android Runtime; 2.5) Linux
Leia maisComputação Móvel Activity (Ref. Cap. 4)
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Computação Móvel Activity (Ref. Cap. 4) Vicente Amorim vicente.amorim.ufop@gmail.com Sumário * Activity - Classes FragmentActivity
Leia maisAndroid Activity. Ivan Nicoli
Android Activity Ivan Nicoli Activity Representa a tela de uma aplicação Classe filha da classe android.app.activity Deve ser declarada sempre no AndroidManifest.xml Obrigatória a implementação do método
Leia maisAndroid #4. antonio deusany de carvalho junior dj@ime.usp.br
Android #4 antonio deusany de carvalho junior dj@ime.usp.br Preferências compartilhadas Memória interna Memória externa SQLite Databases Network Connection Preferências compartilhadas Utiliza um framework
Leia maisArmazenamento de Dados
Persistência... Armazenamento de Dados Diversas opções para armazenar dados da aplicação. A escolha de acordo com a necessidade: dados privados ou públicos, quantidade de espaço necessário, etc. 2 Armazenamento
Leia maisComputação Móvel Gerenciadores de Layout (Ref. Cap. 6)
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Computação Móvel Gerenciadores de Layout (Ref. Cap. 6) Vicente Amorim vicente.amorim.ufop@gmail.com Sumário * Gerenciadores
Leia maisAndroid I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K
Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K Introdução O Android é a resposta da Google ao mercado crescente de dispositivos
Leia maisAndroid. Interfaces: widgets
Android Interfaces: widgets Relembrando... Após a criação do projeto, será criada uma estrutura de diretórios necessária para um projeto Android. A pasta src contém os fontes das classe que representam
Leia maisUsando e Gerenciando Activities
Usando e Gerenciando Activities Ciclo de vida Activity 2 Especificando a execução Especifica a Activity que é ponto principal de entrada de sua aplicação Se a ação MAIN action ou a categoria LAUNCHER não
Leia maisProgramação para Dispositivos Móveis. Activity e Intent
Programação para Dispositivos Móveis Activity e Intent Activity É um módulo único e independente do aplicativo que fornece uma tela com a qual os usuários podem interagir O gerenciamento na memória, o
Leia maisProvedores de Conteúdo
Programação para a Plataforma Android Aula 12 Provedores de Conteúdo O que são provedores de conteúdo? Como ler dados de outras aplicações? Como iden@ficar recursos de forma única? Como deixar dados disponíveis
Leia maisLog, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)
Log, Ciclo de Vida e Diálogos Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Conteúdo Log Classe android.u:l.log LogCat Ciclo de Vida Pilha de a:vidades Métodos e estados da a:vidade Instance State
Leia maisAndroid OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.
Android OLÁ MUNDO MÓVEL Prof. Dr. Joaquim assunção. Parte 1/3 SDK e Android Studio Java SE Development Kit Download and Install JDK 6 http://www.oracle.com/technetwork/java/javase/downloads/index.html
Leia maisDesenvolvimento Mobile com Android
TREINAMENTOS Desenvolvimento Mobile com Android Android 8 de outubro de 2012 Sumário i Sobre a K19 1 Seguro Treinamento 2 Termo de Uso 3 Cursos 4 1 Introdução à plataforma Android 1 1.1 O que é o Android?........................................
Leia maisPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Aula 2 Vidal. Ronnison Reges 1 1 Análise e Desenvolvimento de Sistemas - Parangaba Centro Universitário Estácio do Ceará 2018 Vidal. Ronnison Reges (Centro Universitário
Leia maisProgramação para a Plataforma Android Aula 2. Aula 2 Views
Programação para a Plataforma Android Aula 2 Aula 2 Views O que é modelo, visão e controle Como definir layouts gráficos Como Separar visão de modelo Como criar layouts em arquivos XML Como adicionar eventos
Leia maisProjeto GoHome Tutorial Sobre o serviço do Google Maps no Android
Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android Moisés Batista Bispo Teresina-PI 1- Breve Descrição Este tutorial tem como objetivo, adicionar de forma simples e prática, um mapa ao seu
Leia maisProgramação para Android. Aula 06: Activity, menus e action bar
Programação para Android Aula 06: Activity, menus e action bar Activity A classe Activity é quem gerencia a interface com o usuário. Ela quem recebe as requisições, as trata e processa. Na programação
Leia maisAULA 2. Minicurso PET-EE UFRN
AULA 2 Minicurso PET-EE UFRN Agora iremos mostrar o passo-a-passo de como criar um projeto no Android Studio. 1. No Android Studio, crie um New Project. 2. Em Configure your new project, você deve preencher
Leia maisProf: Ricardo Quintão Site:
Prof: Ricardo Quintão email: rgquintao@gmail.com Site: www.rgquintao.com.br Como criar uma nova Activity? Criando um Projeto Android Até agora, todos os nossos projetos utilizavam apenas uma Activity.
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisComputação Móvel Conceitos Básicos do Android Ref. Capítulo 3
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Computação Móvel Conceitos Básicos do Android Ref. Capítulo 3 Vicente Amorim vicente.amorim.ufop@gmail.com Sumário * Estrutura
Leia maisProgramação para a Plataforma Android Aula 16. Fragmentos
Programação para a Plataforma Android Aula 16 Fragmentos O que são fragmentos Como combinar múl?plas visões em uma única tela? Como lidar com telas de tamanhos variados? Como modificar a visão de uma a?vidade
Leia maisAndroid e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
Leia maisComputação Móvel ActionBar e Temas (Ref. Cap. 5)
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Computação Móvel ActionBar e Temas (Ref. Cap. 5) Vicente Amorim vicente.amorim.ufop@gmail.com Sumário * Introdução * ActionBar
Leia maisProgramação para Android. Aula 05: Estilos e temas; galeria de imagens
Programação para Android Aula 05: Estilos e temas; galeria de imagens Objetivos Aplicar estilos e temas Criar uma galeria de imagens com o widget Gallery Parte 01: Estilos e temas Interface de Usuários
Leia maisHierarquia de classes. Veja as diversas classes do pacote
Entrada e Saída Introdução Input e Output fazem parte do pacote java.io Esse pacote tem uma quantidade grande de classes que dão suporte a operações de entrada e saída As classes básicas são InputStream
Leia maisPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Hello World Professor: Danilo Giacobo OBJETIVOS DA AULA Desenvolver o primeiro aplicativo Android Se familiarizar com o ambiente de desenvolvimento Conhecer os principais
Leia maisHCI Summer Workshop. Android #1. Tiago Guerreiro. tjvg@di.fc.ul.pt
HCI Summer Workshop Android #1 Tiago Guerreiro tjvg@di.fc.ul.pt Introdução Equipa Luis Carriço Tiago Guerreiro Luis Duarte Diogo Marques Gonçalo Gomes Eduardo Matos Nikolay Stanchenko Rafael Nunes Filipe
Leia maisIntrodução ao Android
Introdução ao Android Átila Camurça Alves 1 Edição 17 de maio de 2012 2 Sumário 1 Preparando o Ambiente de Desenvolvimento 7 1.1 Introdução..................................... 7 1.2 Instalação.....................................
Leia maisVamos falar de Hibernate?
Vamos falar de Hibernate? Hibernate é um framework ORM (Object-Relationship Management) muito bacana que nos permite ter muita produtividade na manipulação de objetos a serem persistidos no banco de dados.
Leia maisProf. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1
INE5603 Introdução à POO Prof. A. G. Silva 13 de novembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de 2017 1 / 1 Introdução à manipulação de arquivos Prof. A. G. Silva INE5603
Leia maisAndroid BANCO DE DADOS - SQLITE. Prof. Joaquim assunção.
Android BANCO DE DADOS - SQLITE Prof. Joaquim assunção. SQLite É um sistema de gerenciamento de banco de dados relacional contido em uma biblioteca de programação C. Em contraste com muitos outros sistemas
Leia maisGoogle Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho
Google Android Uma abordagem prática e didática Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho Esse livro está à venda em http://leanpub.com/google-android Essa versão foi publicada em 2015-08-03
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Ficha de Expectativa de Resposta da Prova Escrita
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Ficha de Expectativa de Resposta da Prova Escrita Departamento Acadêmico ou Unidade Acadêmica Especializada em Ciências Agrárias Unidade Acadêmica Especializada
Leia maisAndroid INTERFACE GRÁFICA & LAYOUT. Prof. Dr. Joaquim assunção.
Android INTERFACE GRÁFICA & LAYOUT Prof. Dr. Joaquim assunção. Graphical User Interface (GUI) Quando o Android estava sendo inventado, seus designers enfrentaram muitas escolhas cujo resultado seria determinar
Leia maisPrograma de Dispositivos Móveis
Aula 01 Programa de Dispositivos Móveis A Plataforma Android O Android é um conjunto de softwares voltado para dispositivos móveis, como smartphones, tablets, smartbooks ou netbooks. Hoje no mercado existem
Leia maisDesenvolvimento Android. http://www.larback.com.br
Desenvolvimento Android http://www.larback.com.br Introdução ao Android O Android é a resposta da Google ao mercado crescente de dispositivos móveis. É uma nova plataforma de desenvolvimento baseado no
Leia maisArmazenamento Persistente de Dados
Programação para a Plataforma Android Aula 10 Armazenamento Persistente de Dados Como armazenar as opções de preferência de uma aplicação? Como tocar músicas em uma a@vidade Android? Como armazenar dados
Leia maisProgramação para a Plataforma Android Aula 17. Broadcasts
Programação para a Plataforma Android Aula 17 Broadcasts O que são eventos de difusão? Como capturar eventos de chamadas telefônicas? Como verificar o estado da bateria? Como implementar receptores de
Leia maisNelson Glauber de Vasconcelos Leal
Nelson Glauber de Vasconcelos Leal Novatec Copyright 2015 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial,
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Android Android é um sistema operacional para dispositivos móveis Kernel Linux, drivers e bibliotecas do
Leia maisProgramação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage
Programação para Android Aula 07: Persistência de dados Shared Preferences, Internal e External Storage Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados.
Leia maisDESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO
DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Action Bar A action bar é a barra superior da aplicação Surgiu no Android 3.0 (API Level 11) Benefícios Identifica a aplicação
Leia maisDesenvolvimento para Android Prá9ca 2. Prof. Markus Endler
Desenvolvimento para Android Prá9ca 2 Prof. Markus Endler Criando o primeiro projeto Android Com o ambiente de desenvolvimento preparado, vá em File - > New - > Project... Na janela que abrir, selecione
Leia maisProgramação para Dispositivos Móveis
Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 06 Controlando o fluxo de eventos e passando parametro para Activities. Dalton Martins dmartins@gmail.com
Leia maisProgramação para a Plataforma Android Aula 7. Mul$mídia
Programação para a Plataforma Android Aula 7 Mul$mídia Como executar aplicações que contêm músicas? Como abrir vídeos em Android? Quais formatos de músicas são aceitos? Quais formatos de vídeo? Como o$mizar
Leia maisGoogle Android. Componentes Gráficos
Componentes Gráficos No Android, por padrão já existe uma separação entre interface gráfica (View) e Controlador (Controller). View -> Resources -> Controller -> Activities -> Layouts Um tipo de View cuja
Leia mais