android - manipulação de db.pdf

Upload: alberto-santana-santos

Post on 05-Jul-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Android - Manipulação de DB.pdf

    1/28

     

    MANIPULAÇÃO DE BANCO DEDADOS EM

    ORIENTADO A PROJETO 

    JOSIEL SILVA MOURA

    2 15

  • 8/16/2019 Android - Manipulação de DB.pdf

    2/28

  • 8/16/2019 Android - Manipulação de DB.pdf

    3/28

    Trabalhando com o SQLite do Android

  • 8/16/2019 Android - Manipulação de DB.pdf

    4/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    JOSIEL SILVA MOURA

    MANIPULAÇÃO DEBANCO DE DADOS EM 

    ORIENTADO A PROJETOS 

    2ª edição

    2013

    4

  • 8/16/2019 Android - Manipulação de DB.pdf

    5/28

    Trabalhando com o SQLite do Android

  • 8/16/2019 Android - Manipulação de DB.pdf

    6/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    Sumário1.

     

    Trabalhando com o SQLite do Android ......................................................... 7 

    1.1 

    O método query................................................................................ 7 

    1.2 

    O método insert ................................................................................ 7 

    1.3 

    O método update .............................................................................. 8 

    1.4 

    O método delete ............................................................................... 8 

    1.5 

    O método execSQL .......................................................................... 9 

    1.6 

    Exemplos de SQL usando as funções do Android ............................ 9 

    1.6.1 

    Fazendo uma consulta a tabela (usando SELECT) ................. 9 

    1.6.2 

    Inserindo dados (usando INSERT) ........................................ 10 

    1.6.3 

     Atualizando dados (usando UPDATE) ................................... 10 

    1.6.4 

    Removendo dados (usando DELETE) .................................. 11 

    1.6.5 

    Criando uma tabela (usando CREATE TABLE) ..................... 11 

    2. 

    Desenvolvendo uma aplicação usando banco de dados ............................ 15 

    6

  • 8/16/2019 Android - Manipulação de DB.pdf

    7/28

    Trabalhando com o SQLite do Android

    1.  Trabalhando com o SQLite do Android

    No Android existe um pacote chamado “android.sqlite”, onde existe uma classe

    chamada SQLiteDataBase, que possui os seguintes métodos, conforme é mostrado em

    seguida:

    1.1 O método query

    O método query realiza uma consulta SQL no banco de dados (equivale ao

    comando SELECT). Essa função retorna uma instância (objeto) do tipo Cursor . Vejamos a

    sintaxe do método em seguida:

    Cursor  query( St r i ng , St r i ng[ ] , St r i ng,St r i ng[ ] , St r i ng , St r i ng , St r i ng )  

    Vamos conhecer os parâmetros que iremos utilizar dessa função:

    Neste parâmetro você informa o nome da tabela.

     : Neste parâmetro a(s) coluna(s) que o banco possui.

    : Aqui você informa a condição de busca de dados. Este parâmetro

    funciona como se fosse a clausula where do SQL, onde é informada a condição de busca.

    O restante dos parâmetros iremos trabalhar em seu valor null.

    1.2 O método insert

    O método insert realiza uma inserção de dados na tabela (equivale ao comando

    INSERT). Vejamos a sintaxe deste método:

    l ong i nsert ( St r i ng , St r i ng , Cont ent Val ues )  

    7

  • 8/16/2019 Android - Manipulação de DB.pdf

    8/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    Essa função possui três parâmetros:

    : Neste parâmetro você informa o nome da tabela.

    : O SQL não permite a inserção de linhas em branco, logo, se o valor

    de uma coluna for vazio, ele será iniciado com o valor null.

    : Este parâmetro possui os valores a serem adicionados na tabela.

    1.3 O método update

    O método update realiza uma atualização de dados na tabela (equivale ao

    comando UPDATE). Vejamos agora a sintaxe deste método:

    i nt updat e( St r i ng , Cont ent Val ues , St r i ng , St r i ng)

    Essa função possui três parâmetros:

    : Neste parâmetro você informa o nome da tabela.

    : Este parâmetro possui os valores a serem adicionados na tabela.

    : Aqui você informa a condição para a realização da atualização dos dados.

    : Aqui você informa os argumentos relativos à condição

    informada.

    1.4 O método delete

    O método delete realiza a remoção de dados na tabela (equivale ao comandoDELETE). Vejamos a sintaxe deste método:

    8

  • 8/16/2019 Android - Manipulação de DB.pdf

    9/28

    Trabalhando com o SQLite do Android

    i nt del et e( St r i ng , St r i ng , St r i ng )  

    Essa função possui três parâmetros:

    : Neste parâmetro você informa o nome da tabela.

    : Aqui você informa a condição para a realização da remoção dos dados da

    tabela.

    : Aqui você informa os argumentos relativos à condição

    informada.

    1.5 O método execSQL

    O método execSQL executa uma consulta SQL (como CREATE TABLE, INSERT

    INTO, UPDATE, DELETE e etc.). Não é possível usar a clausula SELECT nesta função.

    Para esse tipo de situação, use o método query. Vejamos a sintaxe deste método:

    voi d execSQL( St r i ng sql )

    Vamos fazer algumas comparações da função “execSQL”, que permite sintaxes de

    comando SQL com as demais funções, como “update”,”insert” e “delete” para a realização

    de uma consulta SQL.

    1.6 Exemplos de SQL usando as funções do Android

    1.6.1 Fazendo uma consulta a tabela (usando SELECT)

    •  Comando SQL :

    select codusuar i o, nome, i dade from cadast r o 

    9

  • 8/16/2019 Android - Manipulação de DB.pdf

    10/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    •  Usando a função query :

    quer y(“cadast r o”, ( new St r i ng[ ] {“codusuar i o”, “nome”, “i dade”}) , null, null, null,

    null, null) ;  

    •  Comando SQL :

    select nome from cadast r o where i dade > 24

    •  Usando a função query

    quer y( “cadast r o”, ( new St r i ng[ ] {“nome”}) , “i dade > 24”, null, null, null, null) ;  

    1.6.2 Inserindo dados (usando INSERT)

    •  Comando SQL :

    insert into cadast r o( nome, i dade) values( ‘ Luci ano’ , 23)  

    •  Usando a função execSQL

    execSQL( “i nser t i nt o cadast r o( nome, i dade) val ues( ‘ Luci ano’ , 23) ; ”) ;

    •  Usando a função insert :

    Cont ent Val ues val or = new Cont ent Val ues( ) ;

    val or . put ( “nome”, “Luci ano” ) ;

    val or . put ( “i dade”, “23”) ;  i nser t ( “cadast r o”, null, val or ) ;

    1.6.3 Atualizando dados (usando UPDATE)

    •  Comando SQL :

    update cadast r o set i dade = 27 where codusuar i o=1 

    •  Usando a função execSQL

    execSQL( “updat e cadast r o set i dade = 27 wher e ( codusuari o=1) ; ”) ;

      Usando a função update :Cont ent Val ues val or = new Cont ent Val ues( ) ;

    10

  • 8/16/2019 Android - Manipulação de DB.pdf

    11/28

    Trabalhando com o SQLite do Android

    val or . put ( “i dade”, “27”) ;

    updat e( “cadast r o”, val or, “codusuar i o=1”) ;

    1.6.4 Removendo dados (usando DELETE)

    •  Comando SQL :

    delete from cadast r o where codusuar i o=1

    •  Usando a função execSQL

    execSQL( “del et e f r omcadast r o where ( codusuar i o=1) ; “) ;

    •  Usando a função delete :

    del et e( “cadast r o”, “codusuar i o=1”, null) ;

    1.6.5 Criando uma tabela (usando CREATE TABLE)

    •  Comando SQL :

    create table cadast r o(codusuar i o i nt eger pr i mary key aut oi ncr ement , nome

    t ext not nul l , i dade i nt eger not nul l )

    •  Usando a função execSQL

    execSQL( “cr eat e tabl e cadast r o(codusuari o i nt eger pr i mar y key aut oi ncr ement ,

    nome t ext not nul l , i dade i nt eger not nul l ) ; ”) ;

     Agora vamos conhecer as funções responsáveis por criar e abrir banco de dados no

     Android.

    SQLDat abase openOr Cr eat eDat abase( St r i ng nome_do_banco, i nt mode, Cursor Fact ory cf ) ;

    Essa função abre ou cria um novo banco de dados. Você deve especificar o nome

    do banco e o modo de abertura (somente leitura; somente escrita e etc.) e um terceiro

    parâmetro, que normalmente é null. Veja um exemplo abaixo:

    SQLDat abase db;

    db = openOr Cr eat eDat abase( "dbbanco", Context .   MODE_PRIVATE , null) ;

    11

  • 8/16/2019 Android - Manipulação de DB.pdf

    12/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    O comando acima abre ou cria o banco de dados chamado “dbbanco”.

    Quando realizamos uma consulta do tipo SELECT usando a função query, ela

    retorna um objeto do tipo Cursor , onde nela estão armazenados os registros solicitados

    pela consulta. Vamos ver abaixo os métodos da classe Cursor :

    Método  Descrição 

    bool ean moveToFi r st ( )Move o cursor para o primeiro registroda tabela.

    bool ean moveToPr evi ous( )Move o cursor para o registro anterioda tabela.

    bool ean moveToNext ( )Move o cursor para o próximo registroda tabela.

    bool ean moveToLast ( )Move o cursor para o último registroda tabela.

    i nt get Count ( ) Retorna o número de registros databela.

    i nt get Col umnI ndex(St r i ng col umnName) Retorna o índice da coluna na tabela,através do seu nome, que é passadocomo parâmetro.

    St r i ng get Col umnName( i nt col umnI ndex)Retorna o nome da coluna na tabela,através do seu índice, que é passadocomo parâmetro.

    i nt get I nt ( i nt col umnI ndex)

    Retorna o valor do campo, tendo

    como seu parâmetro o seu índice,convertido em int. Lembre-se: o índicedo primeiro campo é 0, o índice dosegundo campo é 1 e assim pordiante.

    f l oat get Fl oat ( i nt col umnI ndex)Retorna o valor do campo, tendocomo seu parâmetro o seu índice,convertido em float. Lembre-se: oíndice do primeiro campo é 0, o índicedo segundo campo é 1 e assim pordiante.

    doubl e get Doubl e( i nt col umnI ndex)Retorna o valor do campo, tendocomo seu parâmetro o seu índice,convertido em double. Lembre-se: oíndice do primeiro campo é 0, o índicedo segundo campo é 1 e assim pordiante.

    shor t get Short ( i nt col umnI ndex)

    Retorna o valor do campo, tendocomo seu parâmetro o seu índice,convertido em short. Lembre-se: oíndice do primeiro campo é 0, o índicedo segundo campo é 1 e assim pordiante.

    Vamos mostrar agora um exemplo para que você tenha um melhor entendimento do

    mecanismo de banco de dados do Android.

    12

  • 8/16/2019 Android - Manipulação de DB.pdf

    13/28

    Trabalhando com o SQLite do Android

    Imagine uma tabela chamada “cadastro” com os seguintes dados abaixo: 

    nome  idade  Amanda 32

    Bianca 30

    Bruna 23Carla 20

     Agora, observe a linha de código abaixo:

    SQLDat abase db;db = openOr Cr eat eDat abase( "dbbanco", Cont ext .   MODE_PRIVATE , null) ;Cur sor c = db. query( "cadast r o", ( new St r i ng[ ] {"nome", "i dade"}) , "i dade < 32" ,null, null, null, null) ;

    Observe que a linha acima cria um objeto do tipo Cursor que vai receber o resultado

    da consulta da função query, que retorna uma instância do mesmo tipo. Logo, a instância

    retornada pela função query na verdade, retorna uma tabela resultante da consulta. Veja

    esse resultado abaixo:

    nome  idade Bruna 23

    Carla 20

    Continuando a codificação. Veja a linha abaixo:

    c. moveToFi r st ( ) ;

     A linha acima coloca o ponteiro no primeiro registro da tabela. A linha:

    St r i ng nome = c. get St r i ng( 0) ;

    Retorna o valor do campo “nome” do primeiro registro, no caso, “Bruna”. Veja agora

    a próxima linha:

    i nt i dade = c. get I nt ( 1) ;

    Retorna o valor do campo “idade” do primeiro registro, no formato int. Neste caso,

    o valor retornado é 23. A linha:

    c. moveToNext ( ) ;  

    13

  • 8/16/2019 Android - Manipulação de DB.pdf

    14/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

     A linha acima avança para o próximo registro. A linha:

    nome = c. getSt r i ng( 0) ;

    Retorna o valor do campo “nome” do segundo registro, no caso, “Carla”. Veja agora

    a próxima linha:

    i nt i dade = c. get I nt ( 1) ;

    Retorna o valor do campo “idade” do segundo registro, no formato int. Neste caso,

    o valor retornado é 20.

    14

  • 8/16/2019 Android - Manipulação de DB.pdf

    15/28

     

    2.  Desenvolvendo uma aplicação usando

    banco de dados

    Para tornar o aprendizado mais interessante vamos criar uma aplicação de cadastro

    de pessoas. Nessa aplicação o usuário vai informar os seguintes dados: nome, telefone e

    aniversario.

    Essa aplicação vai possuir três telas, cada uma com as seguintes

    funcionalidades:

    Tela principal (tela com opções): Nessa tela da aplicação teremos um menu que dará

    acesso ao cadastro do usuário e a visualização dos usuários cadastrados.

    Tela de cadastro: Nessa tela o usuário irá preencher os campos solicitados pela aplicação

    e em seguida o mesmo poderá cadastrar para que as informações sejam registradas.

    Tela de visualização de dados: Nessa tela poderão ser visualizados os dados

    (usuários) cadastrados. Se nada foi cadastrado na aplicação, será exibida uma

    mensagem informando essa situação.

    Nessa aplicação para armazenar os dados será feito uso de uma estrutura

    de dados do tipo “lista” (duplamente encadeada). Nessa estrutura os dados são

    armazenados em sequência, e acessados tanto sequencialmente e na sua ordem

    inversa de cadastro (avançando e retrocedendo pelos registros).

    Bom, vamos construir a nossa aplicação. Crie um novo projeto com os

    seguintes dados abaixo:

     Appl icat ion Name:  Aplicação de CadastroProject Name: AplicacaoDeCadastroPackage Name: com.aplicacaodecadastroMinimum Required SDK: API 8: Android 2.2 (Froyo)Target SDK: API 17: Android 4.2 (Jelly Bean)Compile With: API 17: Android 4.2 (Jelly Bean) Activity Name: MainActivityLayout Name: activity_main

    15

  • 8/16/2019 Android - Manipulação de DB.pdf

    16/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

     Altere a estrutura de layout da sua aplicação para o LinearLayout e apague o

    componente TextView. Feito isso adicione os seguintes componentes na sequência:

    Figura 1: Componentes da tela inicial

    Componente Propriedade  Valor  

    TextView   Text Bem vindo a Aplicação de Cadastrode Pessoas. Este é um pequenoprograma de demonstração decadastro. Selecione uma das opçõesabaixo:

    Button1  Id btCadastrar

    Width fill_parent

    Text Cadastrar pessoa

    Button2  Id btListar

    Width fill_parent

    Text Listar pessoas cadastradas

    Seguindo os passos acima, a aplicação deve estar de acordo com a figura

    seguinte:

    Figura 2: Layout da Tela Inicial da Aplicação

    16

  • 8/16/2019 Android - Manipulação de DB.pdf

    17/28

     

    Vejamos agora a estrutura XML da tela principal da nossa aplicação:

    01

    02

    03

    0405

    06

    07

    08

    09

    10

    11

    12

    13

    14

    1516

    17

    18

    19

    20

    21

    22

    23

    24

    25

    2627

    28

    29

     

     

     

     

     

     Agora vamos criar mais uma tela para nossa aplicação. Para isso vamos clicar com o

    botão direito sobre a pasta “layout” e em seguida vamos chamar o recurso de criação de

    arquivos de layout XML para Android. O nome do nosso arquivo de layout XML vai ser

    “cadastro” (a estrutura que vamos utilizar para essa tela será o LinearLayout).

    Depois de criado o arquivo vamos adicionar os seguintes componentes na sequência:

    Figura 3: Componentes da Tela de Cadastro

    17

  • 8/16/2019 Android - Manipulação de DB.pdf

    18/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    Componente Propriedade  Valor  

    TextView1  Text Módulo de cadastro. Digite seus dados abaixo:

    TextView2 Text Nome:

    EditText1  Id edNome

    TextView3  Text Telefone:

    EditText2  Id edTelefone

    TextView3  Text Email:

    EditText3  Id edEmail

    Button1  Id btCadastrar

    Width fill_parent

    Text Cadastrar

    Seguindo os passos acima, a aplicação deve estar de acordo com a figuraseguinte:

    Figura 4: Layout da Tela de Cadastro

    Vamos ver agora a estrutura XML da tela de cadastro da aplicação:

    010203040506070809

    10111213

      

     

    18

  • 8/16/2019 Android - Manipulação de DB.pdf

    19/28

     

    141516171819

    202122232425262728293031323334

    353637383940414243444546474849

    505152535455565758596061626364

    6566676869 

     

     

      

     

     

     

     

     

     

     Agora vamos criar mais uma tela para nossa aplicação. O nome da nossa tela vai se

    chamar “lista”.

     Após criar a tela da nossa aplicação, vamos adicionar os seguintes componentes:

    19

  • 8/16/2019 Android - Manipulação de DB.pdf

    20/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    Figura 5: Componentes da tela de Listar

    Componente Propriedade  Valor  

    TextView1  Text Lista de pessoas cadastradas

    Text size 20sp

     Ainda não acabou. Vamos adicionar após o texto uma nova estrutura de layout do

    tipo LinearLayout (Horizontal), e em seguida vamos mudar as seguintes propriedades dela,

    conforme abaixo:

    Componente Propriedade  Valor  LinearLayout (Horizontal) Id layoutNome

     Agora dentro da estrutura “layoutNome” vamos adicionar os seguintes componentes

    na sequência:

    Componenete Propriedade  Valor  

    TextView  Text Nome.Text color #0000FF

    Text size 20spTextView  Text (Deixar em branco com espaços)

    Text size 20sp

    Id txtNome

    Logo após a estrutura LinearLayout que chamamos de “layoutNome”, vamos

    adicionar uma nova estrutura LinearLayout (Horizontal), e em seguida modifique as

    seguintes propriedades abaixo:

    20

  • 8/16/2019 Android - Manipulação de DB.pdf

    21/28

     

    Componente Propriedade  Valor  LinearLayout (Horizontal) Id layoutTelefone

     Agora dentro da estrutura “layoutProfissao” vamos adicionar os seguintes

    componentes na sequência:

    Componenete Propriedade  Valor  

    TextView  Text Telefone.Text color #0000FF

    Text size 20sp

    TextView  Text (Deixar em branco com espaços)

    Text size 20sp

    Id txtTelefone

     Agora vamos adicionar uma nova estrutura LinearLayout (Horizontal) e em seguida

    modifique as seguintes propriedades abaixo:

    Componente Propriedade  Valor  LinearLayout (Horizontal) Id layoutEmail

     Agora dentro da estrutura “layoutTelefone” vamos adicionar os seguintescomponentes na sequência:

    Componenete Propriedade  Valor  

    TextView  Text Email.Text color #0000FF

    Text size 20sp

    TextView  Text (Deixar em branco com espaços)

    Text size 20spId txtEmail

     Agora vamos adicionar uma nova estrutura LinearLayout (Horizontal), como já foi

    mostrado acima. E depois, modifique as seguintes propriedades abaixo:

    Componente Propriedade  Valor  LinearLayout (Horizontal) Id layoutBotoes

    Gravity Center

     Agora dentro da estrutura “layoutBotoes” vamos adicionar os seguintes componentes

    na sequência:

    Button 

    Componente Propriedade  Valor  Button  Id btVoltar

    Text Voltar

    Button  Id btAvancarText A

     21

  • 8/16/2019 Android - Manipulação de DB.pdf

    22/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

     Agora vamos adicionar um Button logo após a estrutura “layoutBotoes” que

    criamos com as seguintes propriedades abaixo:

    Componente Propriedade  Valor  

    Button  Id btMenuPrincipalText Menu principalWidth fill_parent vançar

    Seguindo todos os passos acima, o layout da aplicação deve estar de acordo com

    a figura abaixo:

    Figura 6: Layout da Tela Listar

    Vejamos agora a estrutura em XML da tela de listagem de pessoas cadastradas:010203040506

    07080910111213141516171819

    2021

      

     

     

  • 8/16/2019 Android - Manipulação de DB.pdf

    23/28

     

    2223242526

    27282930313233343536373839

    404142434445464748495051

    52535455565758596061626364

    656768697071727374757677

    787980

    android:text="Nome:" android:textColor="#0000FF" android:textSize="20sp" /> 

     

     

     

     

     

     

     

     

     

     

  • 8/16/2019 Android - Manipulação de DB.pdf

    24/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    8182838485

    86878889909192939495969798

    99100101102103104105 

    android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" > 

     

     

     

     

     

    No arquivo “MainActivity.java”, vamos adicionar o seguinte código abaixo:

    0102

    03040506070809101112131415

    161718192021222324252627

    282930

    package com.aplicacaodecadastro;

    import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;

    public class MainActivity extends Activity {Button btCadastarPessoas, btListar;

    Button btCadastrarContato;

    Button btVoltar, btAvancar, btMenuPrincipal;TextView txtNome, txtTelefone, txtEmail;EditText edNome, edTelefone, edEmail;SQLiteDatabase db;Cursor dados;

    int numero_registros = 0;int posicao;

    @Override public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);try {

    24

  • 8/16/2019 Android - Manipulação de DB.pdf

    25/28

     

    3132333435

    36373839404142434445464748

    495051525354555657585960

    61626364656768697071727374

    757677787980818283848586

    878889

    db = openOrCreateDatabase("banco_dados",Context. MODE_PRIVATE, null);db.execSQL("create table if not exists cadusuarios" +

    "(codusuario integer primary key autoincrement , nome text not null, " +"telefone text not null, email text not null)");

    } catch(Exception e) {

    exibirMensagem(e.toString());}CarregarTelaPrincipal();

    }

    public void CarregarTelaPrincipal() {setContentView(R.layout.activity_main);

    btCadastarPessoas = (Button) findViewById(R.id.btCadastrarPessoas);btListar = (Button) findViewById(R.id.btListar);

    btCadastarPessoas.setOnClickListener(new View.OnClickListener() {

    @Override public void onClick(View arg0) {

    CarregarTelaCadastro();}

    });

    btListar.setOnClickListener(new View.OnClickListener() {

    @Override public void onClick(View arg0) {

    CarregarTelaListagemPessoas();}

    });

    }

    public void CarregarTelaCadastro() {setContentView(R.layout.cadastro);edNome = (EditText) findViewById(R.id.edNome);edTelefone = (EditText) findViewById(R.id.edTelefone);edEmail = (EditText) findViewById(R.id.edEmail);btCadastrarContato = (Button) findViewById(R.id.btCadContato);

    dados = db.query("cadusuarios", (new String[] { "nome", "telefone","email" }), null, null, null, null, null);

    numero_registros = dados.getCount();

    btCadastrarContato.setOnClickListener(new View.OnClickListener() {

    @Override public void onClick(View arg0) {

    try {String nome = edNome.getText().toString();String telefone = edTelefone.getText().toString();String email = edEmail.getText().toString();

    numero_registros++;

    db.execSQL("insert into cadusuarios values(" 

    25

  • 8/16/2019 Android - Manipulação de DB.pdf

    26/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

    9091929394

    9596979899100101102103104105106107

    108109110111112113114115116117118119

    120121122123124125126127128129130131132

    133134135136137138139140141142143144

    145146147

    + String.valueOf (numero_registros) + ",'" +nome

    + "','" + telefone + "','" + email + "')");

    exibirMensagem("Registro cadastrado com sucesso");

    } catch (Exception e) {exibirMensagem("Erro ao cadastrar:"+e.getMessage());

    }CarregarTelaPrincipal();

    }});

    }

    public void CarregarTelaListagemPessoas() {try {

    dados = db.query("cadusuarios", (new String[] { "nome","telefone", "email" }), null, null, null, null, null);

    numero_registros = dados.getCount();posicao = 1;

    } catch (Exception e) {exibirMensagem("Erro ao obter dados do banco");CarregarTelaPrincipal();

    }

    if (numero_registros == 0) {exibirMensagem("Nenhum registro cadastrado");CarregarTelaPrincipal();

    }

    else {

    setContentView(R.layout.listar);btVoltar = (Button) findViewById(R.id.btVoltar);btAvancar = (Button) findViewById(R.id.btAvancar);btMenuPrincipal = (Button) findViewById(R.id.btMenuPrincipal);

    txtNome = (TextView) findViewById(R.id.txtNome);txtTelefone = (TextView) findViewById(R.id.txtTelefone);txtEmail = (TextView) findViewById(R.id.txtEmail);

    dados.moveToFirst();

    txtNome.setText(dados.getString(dados.getColumnIndex("nome")));txtTelefone.setText(dados.getString(dados.getColumnIndex("telefone")));txtEmail.setText(dados.getString(dados.getColumnIndex("email")));

    btAvancar.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View arg0) {

    if (posicao == numero_registros){exibirMensagem("Último registro");

    }else{posicao++;dados.moveToNext();txtNome.setText(dados.getString(dados.getColumnIndex("nome")));txtTelefone.setText(dados.getString(dados.getColumnIndex("email"

    ))); txtEmail.setText(dados.getString(dados.getColumnIndex("email")));

    26

  • 8/16/2019 Android - Manipulação de DB.pdf

    27/28

     

    148149150151152

    153154155156157158159160161162163164165

    166167168169170171172173174175176177

    178179180181182183184185186187188189190 

    }

    }});

    btVoltar.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View arg0) {

    if (posicao == 1){exibirMensagem("Primeiro registro");

    }else{posicao--;

    dados.moveToPrevious();txtNome.setText(dados.getString(dados.getColumnIndex("nome")));txtTelefone.setText(dados.getString(dados.getColumnIndex("email"

    )));

    txtEmail.setText(dados.getString(dados.getColumnIndex("email")));}

    }});

    }

    btMenuPrincipal.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {

    CarregarTelaPrincipal();}

    });

    }

    public void exibirMensagem(String mensagem) {

    AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);dialogo.setTitle("Aviso");dialogo.setMessage(mensagem);dialogo.setNeutralButton("OK", null);dialogo.show();

    }

    }

    27

  • 8/16/2019 Android - Manipulação de DB.pdf

    28/28

    Introdução ao Desenvolvimento Móvel com Android Josiel Silva Moura

     Após digitarmos os comandos da classe acima, execute a aplicação acima. O

    resultado você confere na imagem seguinte: 

     Aplicação em execução