Refre sh второй счетчик - Kotlin - PullRequest
       27

Refre sh второй счетчик - Kotlin

0 голосов
/ 26 апреля 2020

Я новичок в программировании, поэтому буду очень признателен за вашу помощь. У меня есть пеленальный столик в SQLite с категориями, продуктами и ценами. Когда начинается действие, с помощью курсора я генерирую список для первого и второго счетчиков, когда я выбираю элемент в первом счетчике, я изменяю список для второго счетчика, но второй счетчик не обновляется и продолжает показывать элементы, которые он было, когда начать деятельность с ее первоначальным списком. Пожалуйста, я хочу обновить / обновить sh второго счетчика, когда я выбираю элемент в первом счетчике, второй список обновляется / обновляется, но второй счетчик не показывает его. Мой код:

        //Here I prepare the list for the first spinner avoiding repeated

        val lista1 = arrayListOf<String>();
        var cate = ""
        for (i in 1..cursor.count) {
            if(cate==cursor.getString(0)) {
                cursor.moveToNext()
            }else{
                lista1.add(cursor.getString(0))
                cate=cursor.getString(0).toString()
                cursor.moveToNext()}
        }
        cursor.moveToFirst()
        val forspinner1 = lista1

        //Here I activate the spinner 1

        val spinner1 = findViewById<Spinner>(R.id.spinnercategoria)
        if (spinner1 != null) {
            val adapter1 = ArrayAdapter(
                this,
                android.R.layout.simple_spinner_item, forspinner1
            )
            spinner1.adapter = adapter1
            spinner1.onItemSelectedListener = object :
                AdapterView.OnItemSelectedListener {
                override fun onItemSelected(parent: AdapterView<*>,
                                            view: View, position: Int, id: Long) {
                    spinnerproducto.setVisibility(View.VISIBLE)

                   // I use this "cax" to produce the list for the second spinner

                    cax=forspinner1[position]                  
                }
                override fun onNothingSelected(parent: AdapterView<*>) {
                    // write code to perform some action
                }
            }
        }
        cursor.moveToFirst()
        cax=spinnercategoria.getSelectedItem().toString()

        //Here I prepare the list for the first spinner selecting only those that are within the 
        category selected in the first spinner

        val lista2 = arrayListOf<String>();
        for (i in 1..cursor.count) {
            if(cax==cursor.getString(0)
                    ){lista2.add(cursor.getString(1))}else{}
            cursor.moveToNext()
        }
        cursor.moveToFirst()
        val forspinner2 = lista2

        //here I activate the second spinner

        var spinner2 = findViewById<Spinner>(R.id.spinnerproducto)
        if (spinner2 != null) {
            val adapter2 = ArrayAdapter(
                this,
                android.R.layout.simple_spinner_item, forspinner2
            )
            spinner2.adapter = adapter2
            spinner2.onItemSelectedListener = object :
                AdapterView.OnItemSelectedListener {
                override fun onItemSelected(parent: AdapterView<*>,
                                            view: View, position: Int, id: Long) {
                    psx=forspinner2[position]
                }
                override fun onNothingSelected(parent: AdapterView<*>) {
                    // write code to perform some action
                    adapter2.notifyDataSetChanged();
                }
            }
        }
...