I am developing Android app that load data from SQLite database. I had tried to open my DB from MainActivity and there was no problem. when i call a method from my SQLController, it getting error (application not opened).
SQLController:
public class SQLController {
private DBHelper dbhelper;
private Context ourcontext;
private SQLiteDatabase database;
public SQLController(Context c) {
ourcontext = c;
}
public SQLController open() throws SQLException {
dbhelper = new DBHelper(ourcontext);
database = dbhelper.getWritableDatabase();
return this;
}
public void close() {
dbhelper.close();
}
public ArrayList<Crops> getCrops(){
ArrayList<Crops> listCrops = new ArrayList<>();
String[] allColumns = new String[] { DBHelper.CROPS_ID, DBHelper.IS_FAVOURITE,
DBHelper.ID_NAME, DBHelper.EN_NAME, DBHelper.SPECIES, DBHelper.GENUS,
DBHelper.FAMILY, DBHelper.ORDER, DBHelper.CLASS, DBHelper.DIVISION,
DBHelper.KINGDOM, DBHelper.CATEGORY_ID, DBHelper.PICT};
Cursor c = database.query(DBHelper.TABLE_CROPS,allColumns,null,null,null,null,null);
if (c != null && c.moveToFirst()) {
do {
Crops crops = new Crops();
crops.setId(c.getLong(c.getColumnIndex(DBHelper.CROPS_ID)));
crops.setIdNname(c.getString(c.getColumnIndex(DBHelper.ID_NAME)));
crops.setIsFavourite(c.getLong(c.getColumnIndex(DBHelper.IS_FAVOURITE)));
crops.setEnName(c.getString(c.getColumnIndex(DBHelper.EN_NAME)));
crops.setSpecies(c.getString(c.getColumnIndex(DBHelper.SPECIES)));
crops.setGenus(c.getString(c.getColumnIndex(DBHelper.GENUS)));
crops.setFamily(c.getString(c.getColumnIndex(DBHelper.FAMILY)));
crops.setOrder(c.getString(c.getColumnIndex(DBHelper.ORDER)));
crops.setClasss(c.getString(c.getColumnIndex(DBHelper.CLASS)));
crops.setDivision(c.getString(c.getColumnIndex(DBHelper.DIVISION)));
crops.setCategoryId(c.getLong(c.getColumnIndex(DBHelper.CATEGORY_ID)));
crops.setPict(c.getString(c.getColumnIndex(DBHelper.PICT)));
listCrops.add(crops);
} while (c.moveToNext());
}
if (c != null) {
c.close();
}
return listCrops;
}
}
MainActivity to test the method:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbcont = new SQLController(this);
try {
dbcont.open();
cropses = dbcont.getCrops();
dbcont.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
when I remove cropses = dbcont.getCrops();, application running.
Aucun commentaire:
Enregistrer un commentaire