android-studio - 如何更新回收站视图(即使用分页)kotlin android?
问题描述
每次按下按钮时,我都想更新 recyclerview(即使用分页)。当我按下磁贴中的按钮时,每件事都按预期工作,因为我的 textview 会发生变化。但是当我滚动 recyclerview 并再次返回到原始图块时,recyclerview 项目数据更改回原始表单。单击按钮时,我想永久更新回收站视图中的数据。这是我的回收站视图类。我正在使用分页来获取数据到回收站视图。当我按下时,btn_notify
我试图将 textview 更改tvstatus1
为"Verified"
永久。无需重新启动活动。这是ProductViewHolder
课内
package com.example.bloodbankcompany.recyclerview
class recyclerViewAdmin : BaseActivity() {
private val mFireStore = FirebaseFirestore.getInstance()
const val TOPIC = "/topics/myTopic"
@Suppress("DEPRECATION")
class recyclerViewAdmin : BaseActivity() {
val firebaseFirestore2= FirebaseFirestore.getInstance().collection("applicationForm")
override fun onCreate(savedInstanceState: Bundle?) {
val blooodgi1=intent.getStringExtra("bloodgroup")
val districti1= intent.getStringExtra("district")
super.onCreate(savedInstanceState)
// var ref =FirebaseFirestore.getInstance().collection("applicationForm").whereNotEqualTo("bloodgroup", bloodg)
// ref = ref.whereEqualTo("email", "jojoy500@gmail.com")
var ref =FirebaseFirestore.getInstance().collection("applicationForm")
setContentView(R.layout.activity_recycler_view_admin)
val config = PagedList.Config.Builder().setInitialLoadSizeHint(20).setPageSize(2).build()
val options = FirestorePagingOptions.Builder<User2>().setLifecycleOwner(this)
.setQuery(ref, config, object : SnapshotParser<User2>{
override fun parseSnapshot(snapshot: DocumentSnapshot): User2 {
val user = snapshot.toObject(User2::class.java)
return user!!
}
}).build()
val adapter = object : FirestorePagingAdapter<User2, ProductViewHolder>(options){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProductViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.tileadminr,parent,false)
return ProductViewHolder(view)
}
override fun onBindViewHolder(holder: ProductViewHolder, position: Int, model: User2) {
Log.d("TAG","Position" +position+" model"+model.toString())
// holder.address.text =user.address
holder.bind(model)
}
override fun onLoadingStateChanged(state: LoadingState) {
super.onLoadingStateChanged(state)
when(state){
com.firebase.ui.firestore.paging.LoadingState.LOADING_INITIAL ->
Log.d("TAG","LOADING_INITIAL" )
com.firebase.ui.firestore.paging.LoadingState.LOADING_MORE ->
Log.d("TAG","LOADING_MORE" )
com.firebase.ui.firestore.paging.LoadingState.LOADED ->
Log.d("TAG","LOADED" )
com.firebase.ui.firestore.paging.LoadingState.FINISHED->
Log.d("TAG","FINISHED" )
com.firebase.ui.firestore.paging.LoadingState.ERROR ->
Log.d("TAG","ERROR" )
}
}
}
RecyclerViewa1.layoutManager= LinearLayoutManager(this)
RecyclerViewa1.adapter = adapter
}
class ProductViewHolder(view: View) : RecyclerView.ViewHolder(view){
fun bind(user2: User2){
itemView.tvaddress1.text=user2.address
itemView.tvbloodg1.text =user2.bloodgroup
itemView.tvfirstname1.text= user2.name
itemView.tvemail1.text= user2.email
itemView.tvphone11.text=user2.phone
itemView.tvstatus1.text= user2.status
itemView.tvdonated1.text= user2.donatedBy.toString()
itemView.tvid.text= user2.id
val phonen: String? =user2.phone
val emailt: String?= user2.email
val requester_name = user2.name
val requester_no = user2.phone
val status= itemView.tvstatus1.text
itemView.btn_notify.setOnClickListener {
// itemView.btn_notify.visibility = View.GONE
FirebaseMessaging.getInstance().subscribeToTopic(TOPIC)
val washingtonre = mFireStore.collection("applicationForm").document("$idp")
washingtonre.update("status","Verified").addOnCompleteListener {
itemView.tvstatus1.text= "Verified"}
val title = "New blood donation request."
val message = "Please contact $requester_name at $requester_no."
//val recipientToken = etToken.text.toString()
// Glide.with(itemView).load(user2)
}
}
}
解决方案
推荐阅读
- anylogic - 关于Anylogic中抢占多个资源的问题
- python - Python 3:在范围内重新定义时变量变得未解析
- arrays - 在 VHDL 中初始化数组:它究竟是如何工作的?
- loopbackjs - 如何在 Loopback 4 中包含所有潜在层的嵌套关系?
- assembly - 将汇编代码转换为内部代码?
- python - 音频信号在字级边界分割
- woocommerce - 从变体 SKU 获取产品变体 ID
- javascript - 在 Ajax 中,如何为多个条件编写“标题”?
- amazon-web-services - Athena 表在列值中显示“
- javascript - JavaScipt 代码使用正则表达式替换给定字符串中的所有匹配词,但不在脚本标记内