Я новичок в программировании, поэтому буду очень признателен за вашу помощь. У меня есть пеленальный столик в 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();
}
}
}