Professional Documents
Culture Documents
Pgina 1 de 25
[ @portal_android ]
\o/
Registrar
Ver mensagens sem resposta | Ver tpicos ativos
Pgina Principal Android DEV (Para desenvolvedores) Artigos, Tutoriais e Dicas Todos os Horrios esto como UTC - 3 horas
[TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Neste tutorial ser abordado, como gravar e recuperar dados persistentes utilizando o banco de dados SQLite em Android. 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. Mtodos da classe Cursor 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); telaPricipal = new Intent(this,trabalho.class); setContentView(R.layout.tela); instance = this;
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()); } }); final Button criarBanco = (Button) findViewById (R.id.buttonCriarBd); criarBanco.setOnClickListener(new OnClickListener() { @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); } } }); final Button pesquisar = (Button) findViewById (R.id.buttonPesquisar); pesquisar.setOnClickListener(new OnClickListener() { @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(); }}); } /** * mtodo responsavl por criar o banco de dados * @return */ 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 */ public void salvarCadastro(String nome, String telefone, String data) { try { banco = openDatabase(nomeBancoDeDados, null);//Abrir conexo com o banco de dados banco.execSQL("INSERT INTO lista(nome,telefone,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 void limparTela(){ nome.setText(""); telefone.setText(""); data.setText(""); } public static String nomeBancoDeDados = "marlus"; 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; } private static Trabalho instance = null;
Pessoa.java
package com.banco; public class Pessoa { private String nome; private String telefone; private String data; private int id; 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 java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Vector; 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;
Pgina 10 de 25
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; public class Pesquisas extends Activity{ ListView lista ; EditText texto ; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.pesquisar); lista = (ListView) findViewById(R.id.list); texto = (EditText) findViewById(R.id.pesquisar); 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 vazio 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; }}); lista.setOnItemSelectedListener(new OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView parent, View v, int position, long id) { // TODO Auto-generated method stub trabalho.getInstance().setCampos(vector.get (Integer.parseInt(String.valueOf(id)))); //mtodo que vai preencher os campos na tela de trabalho } @Override public void onNothingSelected(AdapterView parent) { // TODO Auto-generated method stub }}); } /** * Mtodo que vai limpar a lista */
Pgina 11 de 25
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 }
Pgina 12 de 25
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">
Pgina 13 de 25
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Espero ter ajudado com este tutorial. Duvidas sugestes comentrios criticas ?
Voc no tem permisses suficientes para ver os arquivos anexados nesta mensagem. Editado pela ltima vez por Marlus Dias Silva em 14 Jul 2008, 17:21, no total de 3 vez
regeriob2br
What is DDMS?
Re: Trabalhando com o Banco de Dados SQLite no Android. belo tutorial em, vai me ajudar a ver o que eu tava errando, com o outro.... ser que no d pra unir os dois em um post s?
_________________ Rogerio Ferreira - B2BR
Editado pela ltima vez por regeriob2br em 15 Jul 2008, 18:08, num total de 1 vezes
belo totorial em, vai me ajudar a ver o que eu tava errando, com o outro.... ser que no d pra unir os dois em um post s?
jijo
Android application
Pgina 14 de 25
Muito bom Marlus, ainda no botei pra rodar (falta de tempo pra mexer no android), mas olhando por cima, acho que voc se esqueceu de postar a classe pessoa no?!
Data de registro: 01 Fev 2008, 10:28 Mensagens: 81 14 Jul 2008, 12:39
abrao
Muito bom Marlus, ainda no botei pra rodar (falta de tempo pra mexer no android), mas olhando por cima, acho que voc se esqueceu de postar a classe pessoa no?! abrao
Verdade esqueci sim daki a pouco vou upar ela negocio que no to com o pc que desenvolvi a aplicao at as 3 da tarde j vai estar a classe pessoa e o projeto zipado s para baixar e executar
fmakula
What is DDMS?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android timo tutorial Marlus!!!!
valeu!
alex
Android application
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android bacana o tuto!
valeu!
samuel.cavanieri
Android application
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android valeu, legal o Tutorial, vai ajudar bastante nos estudos. S me tire uma dvida: Fui colocar pra rodar o "tuto" e apresentou erros nos mtodos.... removi os @Override que ficam em cima de cada mtodo e funcionou. Poderia me dizer pra que serve esses @Override? obrigado desde j Samuel
Pgina 15 de 25
valeu, legal o Tutorial, vai ajudar bastante nos estudos. S me tire uma dvida: Fui colocar pra rodar o "tuto" e apresentou erros nos mtodos.... removi os @Override que ficam em cima de cada mtodo e funcionou. Poderia me dizer pra que serve esses @Override? obrigado desde j Samuel
Opa tudo bom samuel o @Override o proprio eclipse coloca, mais quer dizer que eu estou sobreescrevendo um mtodo de uma interface Estranho ter apresentado erro ai, se quiser entrar mais no assunto deste @..... pesquise sobre Anotation no sei muito sobre eles . t++ abraos
julianafsa
What is Android?
Estou precisando criar um banco de dados no Android, via SQLiteDatabase, mas eu no estou conseguindo. No tenho nenhuma activity. Na verdade, o componente que eu estou criando vai ser usado por outros componentes (esses sim possuem activities), mas meu componente deve ser totalmente independente dos outros. Um trecho de cdigo que estou fazendo:
private static final String DATABASE_NAME = "sdm"; private SQLiteDatabase mDB = null; mDB = SQLiteDatabase.open(DATABASE_NAME, null); if (mDB == null) { Log.e("[DATABASE]", "Nao conseguiu abrir o banco.. tentando
Pgina 16 de 25
criar novo banco"); mDB = SQLiteDatabase.create(DATABASE_NAME, DATABASE_VERSION, null); if (mDB == null) { Log.e("[DATABASE]","Nao foi possivel criar o banco"); } else { Log.e("[DATABASE]", "Banco criado"); } } else { Log.i("[DATABASE]","Abriu o banco"); }
Mas sempre d o seguinte erro: Failed to open database file "sdm" - unable to open database file Algum poderia me ajudar? Obrigada,
Ol pessoal, Estou precisando criar um banco de dados no Android, via SQLiteDatabase, mas eu no estou conseguindo. No tenho nenhuma activity. Na verdade, o componente que eu estou criando vai ser usado por outros componentes (esses sim possuem activities), mas meu componente deve ser totalmente independente dos outros. Um trecho de cdigo que estou fazendo:
private static final String DATABASE_NAME = "sdm"; private SQLiteDatabase mDB = null; mDB = SQLiteDatabase.open(DATABASE_NAME, null); if (mDB == null) { Log.e("[DATABASE]", "Nao conseguiu abrir o banco.. tentando criar novo banco"); mDB = SQLiteDatabase.create(DATABASE_NAME, DATABASE_VERSION, null); if (mDB == null) { Log.e("[DATABASE]","Nao foi possivel criar o banco"); } else { Log.e("[DATABASE]", "Banco criado"); } } else { Log.i("[DATABASE]","Abriu o banco"); }
Pgina 17 de 25
Mas sempre d o seguinte erro: Failed to open database file "sdm" - unable to open database file Algum poderia me ajudar? Obrigada,
oie juliana, olha eu nunca trabalhei com o SQLite em uma classe fora de uma Activity, quando comecei a trabalhar tb tentei fazer da maneira com que vc est fazendo e no tive sucesso, se vc conseguir post para podermos compartilhar mais conhecimentos t++
guitarro17
What is Android?
Eu criei o projeto com este cdigo, mas me retornou um monte de erros, esses que j haviam acontecido. Parece que ele no aceita os comandos de criar, abrir banco, etc... Description Resource Path Location Type The method createDatabase(String, int, int, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 130 Java Problem The method next() is undefined for the type Cursor Pesquisas.java Trabalho/src/com/Trabalho line 95 Java Problem The method next() is undefined for the type Cursor Trabalho.java Trabalho/src/com/Trabalho line 155 Java Problem The method openDatabase(String, null) is undefined for the type Pesquisas Pesquisas.java Trabalho/src/com/Trabalho line 92 Java Problem The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 131 Java Problem The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 151 Java Problem The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 183 Java Problem The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 197 Java Problem The method query(boolean, String, String[], String, String[], String, String, String, String) in the type SQLiteDatabase is not applicable for the arguments (boolean, String, String[], null, null, null, null, null) Pesquisas.java Trabalho/src/com/Trabalho line 93 Java Problem The method query(boolean, String, String[], String, String[], String, String, String, String) in the type SQLiteDatabase is not applicable for the arguments (boolean, String, String[], null, null, null, null, null) Trabalho.java Trabalho/src/com/Trabalho line 154 Java Problem The method showAlert(String, int, String, String, boolean) is undefined for
Pgina 18 de 25
the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 66 Java Problem The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 68 Java Problem The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 90 Java Problem The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 93 Java Problem The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 105 Java Problem The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 107 Java Problem The method startSubActivity(Intent, int) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 79 Java Problem Ser que falta algum import??
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android No amigo, voc deve estar utilizando um SDK maior que o 0.8 beta essa aplicao foi desenvolvida com o SDK 0.8, tanto o 0.9 e o 1.0 ouve modificaes nas API's alguns mtodos deixaro de existir por isso essa aplicao no executa em SDK mais novos
guitarro17
What is Android?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Realmente, tem uns quantos metodos que eu tive que trocar hehe mas consegui consertar
jijo
Android application
Realmente, tem uns quantos metodos que eu tive que trocar hehe mas consegui consertar
Data de registro: 01 Fev 2008, 10:28 Mensagens: 81
Pgina 19 de 25
guitarro17
What is Android?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Tipo, acho que tem q fazer tipo o que utilizaram nessa agenda:
viewtopic.php?f=7&p=711 Da uma olhada no mtodo private void showDialong(CharSequence s) { No sei se tem alguma maneira mais facil. Se tiver, me avise heheheh
robsonoracle
What is AVD?
Excelente tutorial, e eu passei ele para a verso 1.0 do compilador, onde substitui principalmente os seguintes pontos: 1)
//startSubActivity(intentPesquisar, 0);
Eu substitui por:
startActivityForResult(intentPesquisar, 0);
2)
//showAlert("ERRO", 1, "No foi possivel criar" // + " o banco de dados ", "ok", true);
Eu substitui por:
Onde:
/** * metodo que vai criar um AlertDialog e vai exibilo na tela com para * confirmar que o objeto foi adicionado na lista.
Pgina 20 de 25
*/ private void showDialong(CharSequence s) { Builder builder = new AlertDialog.Builder(Trabalho.this); // cria um objeto do tipo builder builder.setTitle("Informao."); frase informao builder.setMessage(s); passada como parmetro AlertDialog alert = builder.create(); tipo AlertDialong DialogInterface.OnClickListener listener = new ConfirmarCadastro(); // instancia uma classe que dispara o evento se o button do Dialong for acionado alert.setButton("ok", listener); //Adiciona o texto confirmar no button alert.show(); // Exibe na tela o Objeto AlertDialog } //Cria um objeto do //seta a mensagem //seta o titulo coma
package com.trabalho; import android.content.DialogInterface; import android.util.Log; public class ConfirmarCadastro implements DialogInterface.OnClickListener{ @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //AppCadastro.getInstance().limpar(); Log.i("Dialong ", } } "evento de clique");
3)
// 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
Eu substitui por:
Pgina 21 de 25
Agora est sem erro de compilao, porm quando eu executo ele carega a janela certo, mas quando clico no boto Pesquisar ele mostra uma mensagem de exceo e no carrega a janela e fecha a aplicao. O mtodo que faz esta chamada eu tive que substituir conforme havia descrito anteriormente: Onde era: startSubActivity(intentPesquisar, 0); Eu substitui por: startActivityForResult(intentPesquisar, 0); Peo ao guitarro17 que disse que conseguiu consertar para ver se passou por esta situao e como a resolveu ou ento a vc Marlus caso tenha idia. Um abrao a todos e obrigado Robson PS: O fonte est em anexo para anlise.
Voc no tem permisses suficientes para ver os arquivos anexados nesta mensagem. 02 Jan 2009, 18:10
robsonoracle
What is AVD?
Resolvi o problema de chamar a janela pesquisar, onde faltava apenas acrescentar no arquivo AndroidManifest.xml a classe Pesquisas. S que na execuo da classe Pesquisas, quando eu comeo a digitar aparece a lista de todas as pessoas cadastradas, porm ele no filtra, algum fez o filtro funcionar. Por exemplo, eu digito Ana, mas ele continua listando tudo, e no lista apenas as pessoas que comeam com o nome Ana. O mtodo pesquisar alterado para a verso 1.0 o mostrado abaixo, eu deixei as partes em comentrio para vocs terem idia das substituies que tive que fazer:
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 bd = openOrCreateDatabase(Trabalho.nomeBancoDeDados, 0, null); Cursor c = bd.query("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
Pgina 22 de 25
adiciona a o resultado da consulta no objeto Cursor ArrayList<String> result = new ArrayList<String>(); //while(c.next()){ while(c.moveToNext()){ //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"))); //if (pessoa.getNome().equalsIgnoreCase(t)){ 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) { } catch (Exception e) { // TODO Auto-generated catch block Log.d("SQL ERRO ",e.getMessage().toString()); }finally{ bd.close(); //fecha a conexo com o banco de dados } }
Se algum tiver idia do que pode ser eu agradeo a ajuda. Um abrao a todos e um timo 2009 Robson
Spessotto
What is DDMS?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Ola pessoal..sou novo no android, no java e afins... Li esse tutorial, e fui fazer de acordo com o que eu queria... fiz desse jeito, mas da erro na hora da aplicao rodar no emulador..alguem pode me
Pgina 23 de 25
ajudar?
import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class HelloAndroid extends Activity implements OnClickListener { private Button buts,butn; private EditText txtPrinc;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(com.example.helloandroid.R.layout.main); //Recupera o boto passando por parametro o ID do mesmo. buts = (Button)findViewById (com.example.helloandroid.R.id.buts); butn = (Button)findViewById (com.example.helloandroid.R.id.butn); //Define para o boto o evento OnClickListener . buts.setOnClickListener(this); butn.setOnClickListener(this); txtPrinc = (EditText)findViewById (com.example.helloandroid.R.id.txtPrinc); //#####ESSA PARTE QUE GERA O ERRO####################### SQLiteDatabase db = openOrCreateDatabase ("android",Context.MODE_PRIVATE,null); Cursor c = db.query("TB_USUARIOS", new String[]{"id,nome"} , null, null, "nome", null, null,null); txtPrinc.setText(c.getString(1)); // ####################### } public void onClick(View v) { if (v==buts) { //txtPrinc.setText("Botao S!"); }else if (v==butn) { //txtPrinc.setText("Botao N!"); } } }
Pgina 24 de 25
valews!
Rafael Spessotto
Scariot
What is Android?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Esse tutorial funciona direito nas versoes especificadas, porem alguem poderia reescreve-lo para a versao 1.6? Se possivel serei grato!
Luis
What is Android?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android o que esta causando erro a tabela criada com VARCHAR2
jackson.alfonso
What is Android?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Puder todos compartilhassem seu conhecimento assim, ainda mas para pessoas que buscam informaes para iniciar, valeu muito obrigado, excelente material !!!!
juniorsatanasX
What is AVD?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Algum tem os fontes postado ?
Obrigado !
asmag
What is AVD?
Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android Bom dia!
Fiz todo o procedimento e estou rodando no SDK 2.1 API verso 7 porm d a seguinte mensagem de erro:The application com.Trabalho has stopped an unexpectedly. Algum teria alguma idia de como eu fao para debugar minha aplicao Android?
Pgina 25 de 25
23 Mar 2011, 09:37 Mostrar mensagens anteriores: Todas as mensagens 6 Organizar por Hora da Mensagem 6
Crescente
Pgina 1 de 1 [ 24 Mensagens ]
Ir
Pgina Principal Android DEV (Para desenvolvedores) Artigos, Tutoriais e Dicas Todos os Horrios esto como UTC - 3 horas
Procurar por:
Ir