refre sh data (ListView) - PullRequest
       12

refre sh data (ListView)

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

мой проект получен только из firebase

, поэтому я использовал ListView, и когда я изменяю данные из firebase ... данные не меняются в приложении (нужно обновить sh), поэтому я не знаю, как это сделать ... так что мне нужна помощь, плз

этот код получает данные из firebase и добавляет в arraylist

  override fun onStart() {
    super.onStart()
    val database = FirebaseDatabase.getInstance()
    val docRef = firestoreInstance.collection("users").document(currentUserId)
    docRef.get().addOnSuccessListener { document ->
        if (document != null) {
            Log.d("exist", "DocumentSnapshot data: ${document.data}")
            val numberDoucoumnt = document.getString("number")
            mDatabaseReference = database.getReference("bus").child(numberDoucoumnt!!)

            mDatabaseReference?.addValueEventListener(object : ValueEventListener {
                override fun onCancelled(p0: DatabaseError) {
                }
                override fun onDataChange(snapshot: DataSnapshot) {
                    // mArduino?.clear()
                    val docRef = firestoreInstance.collection("users").document(currentUserId)
                    docRef.get().addOnSuccessListener { document ->
                        mArduino?.clear()
                            for (n in snapshot!!.children) {
                                var ard = n.getValue(arduino::class.java)
                                mArduino?.add(0, ard!!)
                            }
                            val adapterView = AdapterView(applicationContext, mArduino!!)
                            List_view.adapter = adapterView

                    }
                }

и этот код для помещения данных в activeView

   List_view.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
        var myard= mArduino?.get(position)!!
        var ardIntent=Intent(this,activeView::class.java)
        ardIntent.putExtra("state",myard.state)
        List_view.invalidate()
        startActivity(ardIntent)
    }

и вот моя проблема, когда я в Active View и меняю состояние с firebase, оно не изменится в приложении, поэтому то, что я сделал обратно в listview и снова щелкну, чтобы данные activeView изменились, но я не хочу, как это, мне нужно изменить данные и я все еще в активном виде

    var state: String? = intent.extras!!.getString("state")
if (state == "Empety") {
    btnState.setBackgroundColor(Color.GREEN)
} else {
    btnState.setBackgroundColor(Color.RED)
}
...