0

I have an activity were I have to show a list of names in a spinner, the names are in a Firebase database and I managed to do that and it works just fine

here is how it looks like: the items added in the spinner

but after I select an item it just shows noting, and it "looks like" I selected nothing after selecting an item

I'm sure that I selected an Item becuase I can get the correct itemId that is selected and preform what I want to do, but it just doesn't show up. I tried changing the text color but that just wasn't possible. what could be my problem?

I'm using android studio and kotlin.

The code:

databaseRef = FirebaseDatabase.getInstance().getReference("Consultants")
    var spinnerArray: MutableList<String> = ArrayList()
    var spinnerArrayID: MutableList<String> = ArrayList()

    //filling the spinner
    databaseRef.addValueEventListener(object: ValueEventListener {
        override fun onDataChange(p0: DataSnapshot?) {
            if (p0 != null) {
                for (db: DataSnapshot in p0.children){
                    var consultantId = db.child("consultantsId").value.toString()
                    var consultantRehabName = db.child("rehabCenterName").value.toString()
                    fname = db.child("firstName").value.toString()
                    lname = db.child("lastName").value.toString()
                    if (consultantRehabName == rehabName){
                        spinnerArray.add("$fname $lname")
                        spinnerArrayID.add(consultantId)
                    }
                }
            }
        }
        override fun onCancelled(p0: DatabaseError?) {
        }
    })

    var adapter: ArrayAdapter<String> = ArrayAdapter<String>(this@DeleteConsultantActivity,
            android.R.layout.simple_spinner_item, spinnerArray)
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    spinnerN3.adapter = adapter

    //deleting the user after selecting the item(name)
    buttonDD01.setOnClickListener({
        var nameSelectedId = spinnerN3.selectedItemId
        consultantId = spinnerArrayID[nameSelectedId.toInt()]

        databaseRef.addListenerForSingleValueEvent(object: ValueEventListener{
            override fun onCancelled(p0: DatabaseError?) {
            }
            override fun onDataChange(p0: DataSnapshot?) {
                databaseRef.child(consultantId).removeValue()
                Toast.makeText(this@DeleteConsultantActivity, "تم الحذف بنجاح", Toast.LENGTH_LONG).show()
                finish()
            }

        })
    })
sho
  • 3
  • 2

0 Answers0