Измените счетчик данных A, выбрав элемент в счетчике B с данными SQLite. - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу изменить данные в счетчике 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.

...