Witam,
mam problem z SQLitem, nie mogłem znaleźć na forum. Jeżeli było to przepraszam.
Do rzeczy!
Mam klase do obsługi bd:
public class bazaActivities extends SQLiteOpenHelper {
public bazaActivities(Context context) {
super(context,"activities.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table activity("
+"nr integer primary key autoincrement,"
+"rodzaj text,"
+"intensywnosc text,"
+"czas text,"
+"kalorie text);");
Log.v("Oncreate","SQLite base created!!");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void addActivity(String rodzaj, String intensywnosc,String czas, String kalorie){
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("rodzaj",rodzaj);
values.put("intensywnosc",intensywnosc);
values.put("czas",czas);
values.put("kalorie",kalorie);
db.insertOrThrow("activity",null,values);
Log.v("AddActivity","SQLite activity added");
}
public Cursor getAll (){
String[] kolumns = {"rodzaj","intensywnosc","czas","kalorie","nr"};
SQLiteDatabase database = getReadableDatabase();
Cursor cursor = database.query("activity",kolumns,null,null,null,null,null);
return cursor;
}
public void deleteRow(int id){
SQLiteDatabase db = this.getWritableDatabase();
String[] argumenty = {""+id};
db.delete("activity", "nr=?", argumenty);
}
}
oraz wywołuję ją we Fragmencie w metodzie "onCreateView":
bazaActivities baza;
Cursor cursor;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_activities, container, false);
Log.v("logtest","Performed");
////array data
baza = new bazaActivities(getActivity());
baza.addActivity("running","high","20","500");
activityArray = new ArrayList<>();
cursor = baza.getAll();
if(cursor==null) {
cursor.moveToFirst();
do {
activityArray.add(cursor.getString(0));
} while (cursor.moveToNext());
}activityArray.add("error");
dodam że jak testowałem SQLite w innej aplikacji wszystko raczej działało, nie mam pojęcia w czym jest problem.
Docelowo dodaję do bazy danych nowe rekordy z poziomu Innego activity "linijka baza.addActivity("running","high","20","500"); tylko w celach demonstracyjnych (o ile ta informacja ma jakiekolwiek znaczenie)."