При работе с SQLiteDatabase лучше всего использовать класс SQLiteOpenHelper.
package com.homemedia.home.stackanswers;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
public class DBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "homemedia.db";
public DBHelper(Context context){
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//create your tables here
}
public void addValues(String values){
//now get writable db here
SQLiteDatabase db = this.getWritableDatabase();
//Use content values to enable you enter the values to db
ContentValues cvalues = new ContentValues();
cvalues.put("name", values);
db.insert("tablenamehere", null, cvalues);
//
}
public ArrayList<String> getValues(String queryCriteria){
//now get readable db here
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<String> itemValues = new ArrayList<>();
//use cursor to query db
Cursor cursor = db.rawQuery("Select * from tablename", null);
cursor .moveToFirst(); //moves to 1st positon
//goes through all items
while (!cursor.isAfterLast()){
// get particular values here and add to arraylist
itemValues.add(cursor.getString(cursor.getColumnIndex("columnin table")));
cursor.moveToNext();
}
cursor.close();
return itemValues; //if you need int values, put int ArrayList<int>
}
public ArrayList<Integer> empIDs(String criteria){
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<Integer> itemValues = new ArrayList<>();
//use cursor to query db
Cursor cursor = db.rawQuery("Select * from tablename WHERE columnValue = criteria ", null);
cursor .moveToFirst(); //moves to 1st positon
//goes through all items
while (!cursor.isAfterLast()){
// get particular values here and add to arraylist
itemValues.add(cursor.getInt(cursor.getColumnIndex("primarykey col")));
//if getting integer is difficult, get as string and convert to int
cursor.moveToNext();
}
cursor.close();
return itemValues;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Затем в основном действии
public class MainActivity extends AppCompatActivity {
DBHelper mydb;
ArrayList<String> mylist;
ArrayList<Integer> myIDs;
Spinner myspinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mydb = new DBHelper(this);
myIDs = mydb.empIDs("search criteria");
mylist = mydb.getValues("search Criteria");
// to add info
mydb.addValues("value to be added");
myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String stringId = String.valueOf(myIDs.get(position));
mydb.addValues(stringId);
}
Я надеюсь, что это работает длявы!