мой проект получен только из 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)
}