Estou tentando dividir minha aplicação em camadas (a classe da interface, e a classe do banco (DAO))… mas não está dando certo…
qdo coloco tdas funções dentro da classe da interface, que é a Gravar_Cids_TCCActivity, dá td certo. Porém, qdo eu apenas crio outra classe (Banco) e tento acessar seus métodos através de um objeto instanciado na classe Gravar_Cids_TCCActivity, nada acontece… não sei porquê, aí estão as duas classes, é um código bem simples, se alguém puder me dar uma luz de commo fazer isso funcionar eu agradeceria muito… pq deixar td em uma classe só não dá né, ficaria gigantesco na minha futura aplicação…
Cara sua classe banco nao pode extender activity. toda activity é responsável por uma tela para cada tela tem um arquivo de layout.xml
ela tem que extender SQLiteOpenHelper que voce pode entender como sendo seu arquivo DAO. nele voce implementa o CRUD.
e outro problema tambem. ninguem instancia uma activity na mão para isso tem que usar intent. colocando sua classe parecida com o exemplo abaixo e creio que tdo funcionara.
[code]import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class Banco extends SQLiteOpenHelper{
public Banco(Context context){
super(context, TABLE, null, VERSION);
}
/*
public Banco(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
*/
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
[/code]
[quote=marcelohd02]Cara sua classe banco nao pode extender activity. toda activity é responsável por uma tela para cada tela tem um arquivo de layout.xml
ela tem que extender SQLiteOpenHelper que voce pode entender como sendo seu arquivo DAO. nele voce implementa o CRUD.
e outro problema tambem. ninguem instancia uma activity na mão para isso tem que usar intent. colocando sua classe parecida com o exemplo abaixo e creio que tdo funcionara.
[/quote]
mas daí a função openOrCreateDatabase(…); não funciona pois ela deve estar em uma activity, como criarei o banco então?
perdoem minha falta de conhecimento, sou iniciante em android.
voce acha que so cria database assim ? por esse metodo?
pesquise mais sobre SQLiteOpenHelper e bem facil de usar, e nessa classe voce implementa o CRUD.
A classe SQLiteOpenHelper, é usada para gerenciar o banco de dados. Para usá-la, é preciso criar uma subclasse implementando os métodos abaixo:
onCreate() ? Este método é chamado quando a conexão com o banco de dados for aberta pela primeira vez. É aqui que criaremos o banco de dados, com o comando sql CREATE.
onUpdate() ? Este método é chamado quando a versão do banco de dados muda. Por exemplo, digamos que você criou uma nova versão de seu aplicativo que usa uma tabela a mais no banco de dados. Quando esta nova versão for instalada (em um telefone que já possuir a primeira versão) este método será chamado, então você poderá criar apenas a nova tabela, mantendo os dados do usuário.
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String ddl = "CREATE TABLE "+ TABLE +
"(id INTEGER PRIMARY KEY," +
"nome TEXT UNIQUE NOT NULL," +
"telefone TEXT);";
db.execSQL(ddl);
aa ok, fiz através da SQLiteOpenHelper e deu td certo…
mt obrigado pela ajuda…
agora estou tentando conectar a aplicação diretamente com um banco de dados externo, abri um novo tópico sobre isso, se puder me ajudar nisso tbm serei mt grato…
até mais…