Oi, obrigado MESMO pela ajuda pessoal (e desculpa não ter agradecido antes)… graças a essa apostilha eu consegui aprender algo, mesmo sendo em uma correria. O que me ferrou mesmo foi o fato de que não sei nada de SQL e fui obrigado a procurar algum vídeo ensinando, no caso os do cafecomjava. Nunca mexi com SQL no java também por não ter tido nenhuma aula relacionada, então grande parte daí fiz meio que às cegas. Eu faria tranquilamente uma lista com variáveis, mas o problema é que o professor exige persistencia de dados.
Bom… Pois é. São quatro horas da madrugada e vou dormir pelo menos umas 3 horas e acordar para terminar. O problema é que me empaquei agora com uma linha do código, que nessas altas horas eu já não sei nem exatamente o que está errado e é exatamente da parte de criação do banco. Se for possível darem uma olhada, agradeço. Minha deadline é agora nessa noite de quinta, até lá não falta muito.
Como no projeto são umas 5 classes, vou postar as duas que tem relação com o problema. Alguns dos botões chamam o mesmo carregar tela pois ainda não tive tempo de criar as funções deles.
Classe Principal do APP
package br.com.android;
import br.com.android.User;
import android.app.Activity;
import android.os.Bundle;
import android.view.*;
import android.widget.*;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class DroidLibris extends Activity {
public void CarregaTelaPrincipal() {
setContentView(R.layout.menu);
Button btadlivro = (Button) findViewById(R.id.btadlivro);
Button btlistalivro = (Button) findViewById(R.id.btlistalivro);
Button btaduser = (Button) findViewById(R.id.btaduser);
Button btlistauser = (Button) findViewById(R.id.btlistauser);
btadlivro.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
CarregaTela2();
}
});
btlistalivro.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
CarregaTela2();
}
});
btaduser.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
CarregaTela4();
}
});
btlistauser.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
CarregaTela2();
}
});
}
public void CarregaTela2() {
setContentView(R.layout.novolivro);
Button btcrialivro = (Button) findViewById(R.id.btcrialivro);
Button btvoltalivro = (Button) findViewById(R.id.btvoltalivro);
btcrialivro.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
}
});
btvoltalivro.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
CarregaTelaPrincipal();
}
});
}
public void CarregaTela4() {
setContentView(R.layout.novocontato);
Button btcriauser = (Button) findViewById(R.id.btcriauser);
Button btvoltauser = (Button) findViewById(R.id.btvoltauser);
btcriauser.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
User user = new User();
// UserDao dao = new UserDao(this);
//NESTA linha ^^^^ eu obtenho o erro The constructor UserDao(new View.OnClickListener(){}) is undefined.
//Provavelmente é um erro idiota por minha parte, mas minha cabeça já não está funcionando direito
EditText nome = (EditText) findViewById(R.id.eduser);
EditText senha = (EditText) findViewById(R.id.edsenha);
user.setNome(nome.getText().toString());
user.setSenha(senha.getText().toString());
dao.save(user);
}
});
btvoltauser.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
CarregaTelaPrincipal();
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CarregaTelaPrincipal();
}
}
Classe UserDAO
package br.com.android;
import java.util.ArrayList;
import br.com.android.User;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class UserDao {
private SQLiteDatabase db;
private static final String SCRIPT_DATABASE_DELETE = "DROP TABLE IF EXISTS users";
private static final String TABELA_USER = "users";
private static final String[] SCRIPT_DATABASE_CREATE = new String[] {"CREATE TABLE users ( _id integer primary "+
" key autoincrement, nome text not null, senha text not null)",
"INSERT INTO "+TABELA_USER+"(nome, senha) values('Jose Miguel','56575')",
"INSERT INTO "+TABELA_USER+"(nome, senha) values('Enri Arias','6969')",};
private static final String NOME_BANCO = "biblioteca";
private static final int VERSAO_BANCO = 1;
private SQLiteHelper dbH;
private static final String ID = "_id";
private static final String NOME = "nome";
private static final String SENHA = "senha";
private static final String [] COLUNAS = {UserDao.ID, UserDao.NOME, UserDao.SENHA};
public UserDao(Context ctx) {
dbH = new SQLiteHelper(ctx, UserDao.NOME_BANCO, UserDao.VERSAO_BANCO, UserDao.SCRIPT_DATABASE_CREATE, UserDao.SCRIPT_DATABASE_DELETE);
db = dbH.getWritableDatabase();
}
public void save(User user){
ContentValues valores = new ContentValues();
valores.put("nome", user.getNome());
valores.put("senha", user.getSenha());
db.insert(TABELA_USER, null, valores);
}
public void update(User user){
ContentValues valores = new ContentValues();
valores.put("nome", user.getNome());
valores.put("senha", user.getSenha());
db.update(TABELA_USER, valores, "_id=?", new String[]{user.getId()+""});
}
public void delete(int id){
db.delete(TABELA_USER, "_id=?", new String[]{id+""});
}
public ArrayList<User> listar(){
ArrayList<User> users = new ArrayList<User>();
Cursor c = db.query(true, TABELA_USER, UserDao.COLUNAS, null, null, null, null, null, null);
if(c.getCount() > 0){
c.moveToFirst();
do{
User user = new User();
user.setId(c.getInt(0));
user.setNome(c.getString(1));
user.setSenha(c.getString(2));
users.add(user);
}while(c.moveToNext());
}
return users;
}
public User getUser(long id){
Cursor c = db.query(true, TABELA_USER, UserDao.COLUNAS, "_id != ?", new String []{id+""}, null, null, null, null);
User user = null;
if(c.getCount() > 0){
user = new User();
c.moveToFirst();
user.setId(c.getInt(0));
user.setNome(c.getString(1));
user.setSenha(c.getString(2));
}
return user;
}
}