Я хочу изменить данные в счетчике A, выбрав один элемент в счетчике B с запросом данных SQLite.
DatabaseHelper. java
//create tables
private static final String CREATE_TABLE_CATEGORY = "CREATE TABLE "
+ TABLE_CAT + "("
+ CAT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ CAT_NAME + " VARCHAR" + ")";
private static final String CREATE_TABLE_KIND = "CREATE TABLE "
+ TABLE_KIND + "("
+ KIND_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KIND_NAME + " VARCHAR,"
+ CAT_KIND_ID + " INTERGER,"
+ " FOREIGN KEY (" + CAT_KIND_ID + ") REFERENCES " + TABLE_CAT + "(" + CAT_ID + "))";
// query data
public List<String> getCat(){
List<String> catList = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT cat_name FROM category_table", null);
if(cursor.moveToFirst()){
do{
catList.add(cursor.getString(0));
}while (cursor.moveToNext());
}
cursor.close();
db.close();
return catList;
}
public List<String> getKindofCat(){
List<String> kindList = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT kind_name FROM kind_table kd, category_table ct where kd.cat_kind_id == ct.cat_id AND cat_kind_id == ?", null);
if(cursor.moveToFirst()){
do{
kindList.add(cursor.getString(0));
}while (cursor.moveToNext());
}
cursor.close();
db.close();
return kindList;
}
This фрагмент, показывающий 2 счетчика Spinners_Fragment. java
DatabaseHelper myDB = new DatabaseHelper(this.getActivity());
List<String> cats = myDB.getCat();
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_dropdown_item, android.R.id.text1, cats);
sp_cat.setAdapter(adapter1);
sp_cat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
//Toast.makeText(getActivity().getApplicationContext(), "" + parent.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
((TextView) parent.getChildAt(0)).setTextColor(Color.parseColor("#D30854"));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
// Set values for spinner of kind
List<String> kinds = myDB.getKindofCat();
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_dropdown_item, android.R.id.text1, kinds);
sp_kind.setAdapter(adapter2);
sp_kind.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// Toast.makeText(getActivity().getApplicationContext(), "" + parent.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
((TextView) parent.getChildAt(0)).setTextColor(Color.parseColor("#D30854"));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
У меня проблема с ВЫБОРОМ данных из базы данных SQLite здесь (в DatabaseHelper):
Cursor cursor = db.rawQuery("SELECT kind_name FROM kind_table kd, category_table ct where kd.cat_kind_id == ct.cat_id AND cat_kind_id == ?", null);
введите описание изображения здесь
Я хочу установить значение в "?" как itemSelected в spinner 1. Один элемент в spinner 1 содержит разные элементы в spinner2.