Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A classe Activity contm mtodos para manipular o banco SQLite, o mtodo createDatabase um que permite criar um banco de dados em android.
Outro mtodo importante, quando est se manuseando dados o mtodo openDatabase, este mtodo permite abrir um banco de dados para que possa trabalha-lo com ele.
A classe SQLiteDatabase, contm mtodos que permitem manusear instrues de banco de dados. O mtodo execSQL permite passar como parmetro uma string SQL, pode inserir dados, criar tabela, alterar dados, e deletar dados.
O mtodo query da Classe SQLiteDatabase, possibilita realizar uma consulta no banco de dados, retornando os registros contidos no banco de dados, a filtragem determinada nos parmetro que so passados.
A classe Cursor contm vrios mtodos que possibilita a manipulao dos dados retornados pelo mtodo query da classe SQLiteDatabase.
next um boolean, retorna true se existir um novo registro. getColumnIndex mtodo retorna um inteiro que indica qual o index da coluna passada como parmetro. getString retorna uma o campo pesquisado em formato de String, pede como parmetro o index da coluna. getInt retorna como Inteiro, o campo pesquisado, solicita como parmetro o index da coluna. getDouble retorna um valor double, que tenha sido retornado na consulta, solicita como parmetro o index da coluna. getFloat retorna um valor float, que tenha sido retornado na consulta, solicita como parmetro o index da coluna. getLong retorna um valor long, que tenha sido retornado na consulta, solicita como parmetro o index da coluna.
Logo abaixo vou adicionar um cdigo onde possvel manipular dados em SQLite utilizando android.
A Classe Trabalho permite Criar o banco de dados, Salvar,Alterar,Excluir registros no banco de dados.
Trabalho.java
package com.Trabalho;
import com.banco.Pessoa;
import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import java.io.FileNotFoundException; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public class Trabalho extends Activity { /** Called when the activity is first created. */
public EditText telefone; public EditText data; public EditText nome; public Button button; public Intent intentPesquisar; public Intent telaPricipal; public Button butDeletar; public Button butAlterar; public Button butNovo; private Pessoa pessoa; private SQLiteDatabase banco = null;
@Override public void onCreate(Bundle icicle) { super.onCreate(icicle); intentPesquisar = new Intent(this, Pesquisas.class);
telefone = (EditText) findViewById(R.id.textTelefone); data = (EditText) findViewById(R.id.textData); nome = (EditText) findViewById(R.id.textNome); button = (Button) findViewById(R.id.button); butDeletar = (Button) findViewById(R.id.buttonDeletar); butAlterar = (Button) findViewById(R.id.buttonAlterar); butNovo = (Button) findViewById(R.id.butNovo);
button.setOnClickListener(new Button.OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub salvarCadastro(nome.getText().toString(), telefone.getText() .toString(), data.getText().toString()); } });
@Override public void onClick(View v) { // TODO Auto-generated method stub if (criarBanco()) { showAlert("Parabens", 1, "banco de dados criado com sucesso" , "ok", true); } else { showAlert("ERRO", 1, "No foi possivel criar o banco de dados " , "ok", true); } } });
@Override public void onClick(View v) { // TODO Auto-generated method stub startSubActivity(intentPesquisar, 0); } });
butDeletar.setOnClickListener(new OnClickListener(){
@Override public void onClick(View v) { // TODO Auto-generated method stub if(pessoa != null){ if(deletar(pessoa.getId())){ showAlert("Registro", 1, "Excludo com sucesso", "ok", true); limparTela(); }else{ showAlert("ERRO", 1, "Problema ao excluir registro" "OK", true); , } } }});
butAlterar.setOnClickListener(new OnClickListener(){
@Override public void onClick(View v) { // TODO Auto-generated method stub if(pessoa != null) if(alterar(pessoa.getId())){ showAlert("Alterado", 1, "Alterado com sucesso", "ok", true); }else{ showAlert("ERRO", 1, "ERRO", "ok", true); } } });
butNovo.setOnClickListener(new OnClickListener(){
@Override public void onClick(View v) { // TODO Auto-generated method stub limparTela(); }}); }
public boolean criarBanco() { boolean aux = true; try { String nomeBanco = nomeBancoDeDados; createDatabase(nomeBanco, 1, MODE_WORLD_READABLE, null); // cria o banco de dados caso ele no exista banco = openDatabase(nomeBanco, null); // abrir a conexo com o banco de dados banco.execSQL("CREATE TABLE IF NOT EXISTS lista (id INTEGER PRIMARY KEY, nome TEXT,telefone TEXT,data TEXT);" //SQL que cria ); o banco de dados Log.d("Sucesso", "banco de dados crado na moral" ); } catch (FileNotFoundException e) { // TODO Auto-generated catch block aux = false; Log.d("Exception banco de dados" e.getMessage()); , } return aux; }
/** * Mtodo que salva os campos no banco de dados * @param nome * @param telefone * @param data */
try { banco = openDatabase(nomeBancoDeDados, null);//Abrir conexo com o banco de dados banco.execSQL("INSERT INTO lista(nome,telefo ne,data) VALUES ('"+ nome + "','" + telefone + "','" + data + "')");//Execulta o insert no banco de dados String[] colunas = { "nome", "telefone", "data" }; Cursor c = banco.query(true, "lista", colunas, null, null, null,null, null); while (c.next()) { Log.i(String.valueOf(c.getColumnIndex("nome")), c.getString(c.getColumnIndex("nome"))); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block Log.d("Exception ", e.getMessage()); } }
public void setCampos(Pessoa pessoa){ getInstance().limparTela(); getInstance().nome.setText(pessoa.getNome()); getInstance().telefone.setText(pessoa.getTelefone()); getInstance().data.setText(pessoa.getData()); this.pessoa = pessoa; }
private boolean deletar(int cod){ boolean aux = true; try { banco = openDatabase(nomeBancoDeDados, null); String sql = "DELETE FROM lista WHERE id = '" +cod+"'"; banco.execSQL(sql);
} catch (FileNotFoundException e) { // TODO Auto-generated catch block aux=false; Log.d("Exception excluir",e.getMessage().toString()); } return aux; }
private boolean alterar(int cod){ boolean aux = true; try{ banco = openDatabase(nomeBancoDeDados, null); String sql = "UPDATE lista SET nome = '"+nome.getText().toString()+"', telefone = '"+telefone.getText().toString()+"', data = '"+data.getText().toString()+"' WHERE id = '"+cod+"'"; banco.execSQL(sql); }catch(Exception e){ aux=false; Log.d("Excecao ",e.getMessage().toString()); } return aux; }
Pessoa.java
package com.banco;
public class Pessoa { private String nome; private String telefone; private String data;
public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getTelefone() { return telefone; } public void setTelefone(String telefone) { this.telefone = telefone; } public String getData() { return data; } public void setData(String data) { this.data = data; } private static Pessoa instance = null; public static Pessoa getInstance(){ if(instance == null){ instance = new Pessoa(); } return instance; } }
tela.xml
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" > <TextView android:id="@+id/widget27" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Nome" android:layout_x="20px" android:layout_y="22px" > </TextView> <EditText android:id="@+id/textNome" android:layout_width="198px" android:layout_height="wrap_content"
android:textSize="18sp" android:layout_x="90px" android:layout_y="12px" > </EditText> <TextView android:id="@+id/widget29" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Telefone" android:layout_x="20px" android:layout_y="82px" > </TextView> <EditText android:id="@+id/textTelefone" android:layout_width="197px" android:layout_height="wrap_content" android:phoneNumber="true"
android:textSize="18sp" android:layout_x="90px" android:layout_y="72px" > </EditText> <TextView android:id="@+id/widget31" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Data" android:layout_x="20px" android:layout_y="142px" > </TextView> <EditText android:id="@+id/textData" android:layout_width="197px" android:layout_height="wrap_content"
android:textSize="18sp" android:layout_x="90px" android:layout_y="132px" > </EditText> <Button android:id="@+id/button" android:layout_width="82px" android:layout_height="wrap_content" android:text="Salvar" android:layout_x="25px" android:layout_y="202px" > </Button> <Button android:id="@+id/buttonCriarBd" android:layout_width="78px" android:layout_height="wrap_content" android:text="CriarBD" android:layout_x="113px" android:layout_y="202px" >
</Button> <Button android:id="@+id/buttonPesquisar" android:layout_width="90px" android:layout_height="wrap_content" android:text="pesquisar" android:layout_x="195px" android:layout_y="202px" > </Button> <Button android:id="@+id/buttonDeletar" android:layout_width="90px" android:layout_height="wrap_content" android:text="deletar" android:layout_x="195px" android:layout_y="260px" > </Button> <Button android:id="@+id/butNovo" android:layout_width="82px" android:layout_height="wrap_content" android:text="Novo" android:layout_x="25px" android:layout_y="260px" > </Button> <Button android:id="@+id/buttonAlterar" android:layout_width="78px" android:layout_height="wrap_content" android:text="Alterar" android:layout_x="113px" android:layout_y="260px" > </Button> </AbsoluteLayout>
A classe Pesquisas a classe responsavel pela consulta no banco de dados. Segue logo abaixo o cdigo que demostra com trabalhar com consulta no SQLite.
Pesquisas.java
package com.trabalho;
import com.banco.Pessoa;
import android.app.Activity; import android.app.ListActivity; import android.app.TabActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.AdapterView.OnItemSelectedListener;
texto.setOnKeyListener(new OnKeyListener(){
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(!texto.getText().toString().equals("")){//varifica se o campo digitado diferente de vaz io pesquisar(texto.getText().toString());//chama o mtodo pesquisar passando como parmetro o campo texto }else{ limparLista();//limpa a lista se o campo text for igual a vazio. } return false; }});
@Override public void onItemSelected(AdapterView parent, View v, int position, long id) { // TODO Auto-generated method stub trabalho.getInstance().setCampos(vector.get(Integer.parseInt(Strin g.valueOf(id)))); //mtodo que vai preencher os campos na tela de trabalho }
@Override public void onNothingSelected(AdapterView parent) { // TODO Auto-generated method stub }}); }
private void limparLista(){ vector.clear(); lista.setAdapter( new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList())); }
/** * mtodo que vai fazer a pesquisa no banco de dados SQLite * e retornar o resulado e adicion -lo na lista * @param t */
private void pesquisar(String t){ ArrayAdapter<String> fileList = null; SQLiteDatabase bd = null; vector.clear(); Pessoa pessoa = null; try { bd = openDatabase(trabalho.nomeBancoDeDados,null); //abre a conexo com o banco de dados Cursor c = bd.query(true,"lista",new String[]{"id","nome","telefone","data"},null, null, null, null,null); // pesquisa o campos passandos no vetor de string no banco de dados e adiciona a o resultado da consulta no objeto Cursor ArrayList<String> result = new ArrayList<String>(); while(c.next()){ //Prenchendo um objeto do tipo pessoa com os dados recuperados do banco de dados pessoa = new Pessoa(); pessoa.setNome(c.getString(c.getColumnIndex("nome"))); pessoa.setTelefone(c.getString(c.getColumnIndex("telefone"))); pessoa.setData(c.getString(c.getColumnIndex("data"))); pessoa.setId(c.getInt(c.getColumnIndex("id"))); vector.add(pessoa); // adiciona o objeto pessoa no vetor pessoa = null;
//adiciona a viso da lista result.add(c.getString(c.getColumnIndex("nome")) + " - "+c.getString(c.getColumnIndex("telefone"))+" - "+ c.getString(c.getColumnIndex("data"))); } fileList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, result); //cria o modelo lista.setAdapter(fileList); //intala a lista } catch (FileNotFoundException e) { Log.d("SQL ERRO ",e.getMessage().toString()); }finally{ bd.close(); //fecha a conexo com o banco de dados } } private Vector<Pessoa> vector = new Vector<Pessoa>(); //vetor utilizado para armazenar objetos do tipo Pessoa }
pesquisar.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/widget27" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" > <TextView android:id="@+id/widget29" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pesquisar" > </TextView> <EditText android:id="@+id/pesquisar" android:layout_width="317px"
android:layout_height="wrap_content" android:textSize="18sp" > </EditText> <ListView android:id="@+id/list" android:layout_width="317px" android:layout_height="290px" > </ListView> </LinearLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.trabalho"> <application android:icon="@drawable/icon"> <activity android:name=".trabalho" 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=".Pesquisas" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
V c
regeriob2br
What is DDM ?
belo tutorial em, vai me ajudar a ver o que eu tava errando, com o outro....
Editado pela ltima vez por regeriob2br em 15 Jul 2008, 18:08, num total de 1 vezes
D C B
89
87 6
5 "4) " ) ! " 3) 2") 0%'1$) $" 0 )$)# " !" % % ' "& % $"# " ! (
m ss
ss
as
ss
sc m
sc c s?
s s s s m s m lva em 14 Jul 2008, 17:21, no total de 3 vez
Es
c m s
7