Problemas com Android
|
12-09-2014, 21:25
Mensagem: #1
|
|||
|
|||
Problemas com Android
Olá pessoal, sou programador em Delphi e estou começando agora com Android.
E naum consigo chamar uma classe que criei para acessar o banco de dados a partir da minha Activity principal. se alguem poder me ajudar, agradeço muito. Naum sei mais o que fazer. Classe criada: package br.com.mkl.navegandotelas; import android.app.AlertDialog; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.text.Editable; public class MKLBD { String bdnome = "base001"; Cursor tbClientes; SQLiteDatabase banco; AlertDialog.Builder mensagem; Context context; public MKLBD(Context context){ this.context = context; mensagem = new AlertDialog.Builder(null); } public void CriaOuAbreBanco(){ String sql; sql = "CREATE TABLE IF NOT EXISTS Clientes ( numero INTEGER PRIMARY KEY, " + "nome TEXT, endereco TEXT, bairro TEXT, fone TEXT, fone2 TEXT )"; try{ banco = SQLiteDatabase.openOrCreateDatabase(bdnome, null); banco.execSQL(sql); tbClientes = banco.query("Clientes", null, null, null, null, null, null); tbClientes.moveToFirst(); } catch(SQLException erro){ ExibeMsg("Erro ao criar Banco ! "+erro); } } public void ExibeMsg(String Mensagem){ mensagem.setMessage(Mensagem); mensagem.setNeutralButton("OK", null); mensagem.show(); } public void Inserir(Editable nome, Editable enderco, Editable bairro, Editable fone, Editable fone2){ String sql; int num; num = RecNo(); num++; sql = "INSERT INTO Clientes(numero, nome, endereco, bairro, fone, fone2)" + " VALUES ("+num+", "+nome+", "+enderco+", "+bairro+", "+fone+", "+fone2+")"; try { banco.execSQL(sql); ExibeMsg("Registro salvo com sucesso!!!"); } catch(Exception erro){ ExibeMsg("Erro ao salvar registro !"+erro); } } public int RecNo(){ int Num; try{ Num = tbClientes.getCount(); return Num; } catch (Exception erro){ ExibeMsg("Erro ao contar registros ! "+erro); return 0; } } } Chamada na Activity: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dados = new MKLBD(this); dados.CriaOuAbreBanco(); } Ai apresenta a erro e não roda o programa. Obrigado pessoal!! |
|||
13-09-2014, 17:44
(Esta mensagem foi modificada pela última vez a: 13-09-2014 17:54 por zee.)
Mensagem: #2
|
|||
|
|||
RE: Problemas com Android
estou a ver assim à partida alguns erros que devias corrigir. primeiro, a rotina de criação da base de dados deveria estar numa classe à parte, e os métodos de acesso deveriam estar noutra.
Algo do género: Classe de criação das tabelas: Código: public class DatabaseHelper extends SQLiteOpenHelper { Classe de acesso à bd Código: public class DatabaseAccess { [font=Verdana, Arial, sans-serif]Metodo de usagem na activity:[/font] Código: DatabaseAccess db = new DatabaseAccess(getAplicationContext()); Aqui esta um exemplo muito simples de como comecar. O resto acho que teras de explorar por tua conta e risco. Existem diversas maneiras de aprimorar tudo, e conseguir alta performance no acesso. Atencao: nunca fazer acesso a bd na main thread! |
|||
14-09-2014, 11:42
Mensagem: #3
|
|||
|
|||
RE: Problemas com Android
OK. Obrigado, vou tentar fazer isso meu amigo!
|
|||
14-09-2014, 23:29
Mensagem: #4
|
|||
|
|||
RE: Problemas com Android
Funcionou. Muito obrigado amigo.
Resolvido! |
|||
15-09-2014, 19:26
(Esta mensagem foi modificada pela última vez a: 15-09-2014 19:28 por zee.)
Mensagem: #5
|
|||
|
|||
RE: Problemas com Android
de nada lembra-te que deves fazer sempre o acesso à bd através de Threads. Existe documentação muito completa acerca do assunto em developer.android.com
|
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 1 Visitante(s)