Dúvida android SQLite

Existe algum tutorial para eu usar um banco em varias Activitys ? Todos os que eu acho na net são de apenas uma activity =X.Eu vou criar praticamente uma tabela em cada activity e chama-las em uma outra…Obrigado

Boa tarde,

Desenvolvemos um produto chamado Appestoque Web que consiste em um aplicativo de controle de estoque na web. Esse aplicativo é integrado o Appestoque Mobile. Uma aplicação desenvolvida em java para a plataforma Android.

Abaixo, no link da página você vai encontra alguns screenshot do aplicativo android, e no link do fonte você vai poder olhar o código.

Página: http://www.appestoque.com.br/
Fonte do projeto android: http://code.google.com/p/appestoqueandroid/

Espero ter ajudado.

Fica com Deus.

Obrigado pela ajuda , mas nao consegui intender nao =X, se alguem pudesse me ajudar com isso ,passando um tutorial na net seria grato =).Obrigado!

Boa tarde,

Aqui esta um dos melhores que achei se tu pretende criar uma aplicação um pouquinho maior que o normal.

Me ajudou!

http://www.androidbrasilprojetos.org/android/introducao-a-banco-de-dados-android/

Valeu pelo tuto , vai ser de grande ajuda .
Porem esta dando um erro na hora de carregar dados.
Oha os meu metodos:

[color=red]Carrega Dados :[/color]

[code]public void carregaDados(){
carrinho = (ListView)findViewById(R.id.tvCarregaDado);
if(verificaRegistro()){
String [] coluna = new String[] {KEY_NOMEPEDIDO};
aaLista = new SimpleCursorAdapter(this, R.layout.mostradados, cursor, coluna, new int[]{R.id.tvCarregaDado});
carrinho.setAdapter(aaLista);

	   }
	   else{
		   mensagemExibir("Voce nao comprou nada ainda!", "Compras");
	   }[/code]

[color=red]Verifica Registro :[/color]

[code]private boolean verificaRegistro(){
try{
cursor = bancoDados.rawQuery(“SELECT * FROM pedido”,null);
if (cursor.getCount()!=0){
cursor.moveToFirst();
return true;
}
else {
return false;
}
}catch (Exception erro) {
// TODO: handle exception
mensagemExibir("Erro ao verificar dados: " +erro,“Erro:”);
return false;

	}
	   
   }[/code]

e o meu erro no LogCat

Olhando rápido o LOG de erro, parece que tu não deu o open() ou o close(). Sempre antes de executar qualquer comando de banco, tu vai ter de abrir (open()) e depois fechar (close()) tua conexão.

Lembrando que o Android, até onde apreendi, não permite tu ter duas conexões abertas.

Corrigi aquele erro ,era aquilo que voce falou mesmo , obrigado pela ajuda ,mas agora so nao consigo mostrar a list, nao aparece nada ,fica tudo preto .É aquele codigo que esta ali em cima!
Abraços

Cara, so com o que está ali não consigo te ajudar. Mas acho que se tu colocar em debug lah na classe que tah pegando do banco e outro na activity aonde lista os dados, tu vai conseguir ver o ponto que está com problema.

Senão, posta aqui, ou em outro tópico para mais alguém ajudar o código da activity, dao e adapter que tu usou.

Então cara o meu problema esta nisso ai mesmo , eu estou inserindo em outras activity e mostrando nessa!
Eu nao tenho classe dao , fiz por outro jeito kkkk =X

olha ai minha activity que é para mostrar os dados :

[code]package pacote.grafico;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import pacote.grafico.ConnectionSocket;
import pacote.grafico.R.layout;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.database.sqlite.SQLiteDatabase;
import android.database.Cursor;

public class carrinhoCompras extends Activity {
//variaveis globais
public static final String KEY_NOMEPEDIDO = “nome”;
SQLiteDatabase bancoDados = null;
Cursor cursor;
SimpleCursorAdapter aaLista;
ListView carrinho;

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);   
        setContentView(layout.carrinho);
        Log.i("TEstes", "iniciou classe");
     verificaRegistro();
     carregaDados();
     
        
 }
   public boolean onCreateOptionsMenu(Menu menu) {
  	 MenuItem finalizar = menu.add(0,0,0,"Finalizar Compra");
  	 MenuItem alterar = menu.add(0,1,0,"Alterar Compra");

  	return super.onCreateOptionsMenu(menu);
   }
   public boolean onOptionsItemSelected(MenuItem item) {
	   if(item.getItemId() == 0){
		   AlertDialog.Builder dialog = new
		   AlertDialog.Builder(this);
		   dialog.setMessage("Deseja confirmar compra?");
		   dialog.setPositiveButton("Sim", new
		   DialogInterface.OnClickListener() {
		    
		   @Override
		   public void onClick(DialogInterface di, int arg) {
		    
		   
			   
	            startActivity(new Intent(carrinhoCompras.this,menuPrincipal.class));
		   // TODO Auto-generated method stub
		    
		   }
		   });
		    
		   // botao nao executa algo se o botao nao for pressionado
		   dialog.setNegativeButton("Não", new
		   DialogInterface.OnClickListener() {
		    
		   @Override
		   public void onClick(DialogInterface di, int arg) {
		   // TODO Auto-generated method stub
		    
		   }
		   });
		   dialog.setTitle("Aviso");
		   dialog.show();
		    
		   }
	   
	   
	   return super.onOptionsItemSelected(item);
	   }
   
   // public void consultaBase(){
   //  Cursor cursor = bancoDados.query("pedido",null,null, null, null,null , null);
   //  }
   
 
		

   
   private boolean verificaRegistro(){
	   try{
	bancoDados = openOrCreateDatabase("lanchonete", MODE_WORLD_READABLE, null);
	cursor = bancoDados.rawQuery("SELECT * FROM pedido",null);
	if (cursor.getCount()!=0){
		cursor.moveToFirst();
		return true;
	}
	else {
		return false;
	}
	   }catch (Exception erro) {
		// TODO: handle exception
		   mensagemExibir("Erro ao verificar dados: " +erro,"Erro:");
		   return false;
		   
	}
	   finally
		{
				bancoDados.close();

			
		}
	   
   }
   public void mensagemExibir(String mensagem , String titulo){
    	
	    
	    AlertDialog.Builder dialog = new
		AlertDialog.Builder(this);
		dialog.setMessage(mensagem);
		dialog.setTitle(titulo);
		dialog.setNeutralButton("OK", null);
		dialog.show();
	    }
   
   public void carregaDados(){ 
	   try{
		 bancoDados = openOrCreateDatabase("lanchonete", MODE_WORLD_READABLE, null);
	   carrinho = (ListView)findViewById(R.id.listaCarrinho);
	   if(verificaRegistro()){
		   String [] coluna = new String[] {KEY_NOMEPEDIDO};
		   aaLista = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, coluna, new int[]{R.id.tvCarregaDado});
		   carrinho.setAdapter(aaLista);
		   
	   }
	   else{
		   mensagemExibir("Voce nao comprou nada ainda!", "Compras");
	   }
	   }catch (Exception e) {
		// TODO: handle exception
	}
	   finally
		{
				bancoDados.close();

			
		}
		   
   }
  }

[/code]

o xml dela

[code]<?xml version="1.0" encoding="utf-8"?>

[/code]

O aaLista não está vindo vazio?

É isso que esta acontecendo , nao esta aparecendo nada no aaLista,abraços

1- Pode estar sendo falso o retorno verificaRegistro.
2 - Pode ter lançado uma Exception, mas você está “comendo” elas…

Já ouviu falar em Debug?

Olha o erro que esta dando no exception :

Erro ao carregar dados: java.lang.IllegalArgumentException: column ‘_id’ does not exist

Boa tarde,

Você terá que ter uma coluna na sua tabela com o nome ‘_id’.

Eu adotei como padrão essa nomenclatura para as minhas chaves primárias em aplicativos para android que desenvolvi até hoje, mas eu nunca encontrei uma explicação plausível na documentação do fabricante que justificasse essa necessidade. Acredito que essa informação seja manipulada pelo componente ListView, e para não haver configuração em xml, talvez a equipe que desenvolve o componente tenha optado por colocar em hardcode no componente.

Obs.: Eu não estou afirmando, mas apenas especulando. Até porque eu não consegui encontrar nenhuma documentação oficial sobre o assunto.

Fica com Deus.

A sim intendi ,obrigado.
E tenho outra duvida , eu quer que a tabela pedido zere quando eu realizar o pedido , como faria isso?

Boa tarde,

Eu não entendi muito qual o seu intuito, mas segue abaixo um trecho de código que talvez possa ajudar.

db = openOrCreateDatabase(“lanchonete”, MODE_WORLD_READABLE, null);
db.delete(TABELA, null, null);
db.close();

Fica com Deus.

O meu objetivo e que preciso zerar esses pedidos toda vez que o cliente realizar o pedido! Obrigados abraços

EDIT:
Galera consegui avançar porem olhem o que esta acontecendo com o ListView,esta mostrando os produtos porem o titulo que era pra mostrar nao esta mostrando, e o log esta certinho.

OBS: Não esta carregando a imagem , esta aqui o link

Bom dia,

Encontrei no overview da classe CursorAdapter onde o fabricante escreve que “The Cursor must include a column named “_id” or this class will not work.”.

http://developer.android.com/reference/android/widget/CursorAdapter.html

Fica com Deus.

A sim obrigado , ja implemente a coluna _id na minha tabela , isso esta funcionando certinho ,o erro é outro agora como voce pode ver no meu Post de cima !
Obrigado pela ajuda,Abraços Fica com Deus

Resolvi aquele erro , kkk com muito esforço mas resolvi,agora preciso pega o preco desses pedidos e fazer a soma do valor total , como faria isso?

EDIT :

[code]public void pegaPreco(){
try {
txtpreco = (TextView)findViewById(R.id.txtPreco);
bancoDados = openOrCreateDatabase(“lanchonete”, MODE_WORLD_READABLE, null);
cursor = bancoDados.query(“pedido”, campos1, null, null, null, null, null);
ArrayList precos = new ArrayList();
for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()) {
// The Cursor is now set to the right position
precos.add(cursor.getFloat(cursor.getColumnIndex(“preco”)));

          }[/code]

entao consegui adicionar, porem nao consigo somar esse arrayList e mostrar o total no txtPreco.Se alguem puder me ajudar agradeço!