to fazendo um codigo de um app, e estou tendo problemas com o SQLite, geralmente tenho problemas com ele, todas as vezes na verdade, sempre aparece algo novo… enfim, o codigo a seguir basicamente cadastra o uma materia e tal no banco, mais quando vou recuperar elas ele devolve uma lista nula, sendo que um codigo exatamente igual funciona em outro app, oque me faz pensar que e problema no save…
Este primeiro trexo e oque seta o adapter… tudo certo com ele eu acho.
@Override
public void onResume() {
super.onResume();
UserDAO dao = new UserDAO(getActivity());
List<CourseEntitie> lista = dao.getList();
ListAdapter adapter = new listAdapter(lista, getActivity());
this.listView.setAdapter(adapter);
}
Este agora e o do SQLite
package com.foraway.calendarschool.SQLite;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.foraway.calendarschool.entities.CourseEntitie;
import java.util.ArrayList;
import java.util.List;
/**
* Created by mac on 19/02/16.
*/
public class UserDAO extends SQLiteOpenHelper {
//constantes
public static final String TAG_BD_ALL = "sql";
public static final String NOME_BD = "USER";
private static final int VERSION_BD = 1;
private static final String TABLE = "curso";
//constructor
public UserDAO(Context context) {
super(context, NOME_BD, null, VERSION_BD);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table "+ TABLE +"(id integer primary key autoincrement, fundation text, curso text, materia1 text, materia2 text, materia3 text, materia4 text, materia5 text, materia6 text, materia7 text, materia8 text, materia9 text, materia10 text, materia11 text, materia12 text, materia13 text, materia14 text, materia15 text, materia16 text, materia17 text, materia18 text, materia19 text, materia20 text);";
db.execSQL(sql);
Log.e(TAG_BD_ALL, "tabela de usuario criado com sucesso");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//atualiza o banco.
}
public void save(CourseEntitie c, int total) {
SQLiteDatabase db = getReadableDatabase();
try {
ContentValues v = new ContentValues();
v.put("fundation", c.getFundacao());
v.put("curso", c.getCurso());
for (int i = 1; i <= total; i++){
String materia = "materia" + i;
v.put(materia, c.getHours().getMaterias().get(i-1));
}
db.update(TABLE, v, null, null);
Log.e("SQL", "salvou com sucesso");
}finally {
db.close();
}
}
public List<CourseEntitie> getList() {
SQLiteDatabase db = getReadableDatabase();
try{
Cursor c = db.query(TABLE, null, null, null, null, null, null, null);
return toList(c);
}finally {
db.close();
}
}
private List<CourseEntitie> toList(Cursor c) {
List<CourseEntitie> list = new ArrayList<>(3);
if(c.moveToFirst()){
do {
CourseEntitie cur = new CourseEntitie();
cur.setId(c.getLong(c.getColumnIndex("id")));
cur.setCurso(c.getString(c.getColumnIndex("curso")));
cur.setFundacao(c.getString(c.getColumnIndex("fundation")));
}while (c.moveToNext());
}
return list;
}
}
o codigo esta porqueira, mais estou fazendo apenas para mim, vai me ajudar a organizar os horarios escolares entre tecnico e ensino medio.
obrigado pela atencao, espero as respostar.