簡體   English   中英

如何刷新片段中的onBindViewHolder方法

[英]how to refresh onBindViewHolder method in fragment

我在recyclearview的每個項目中都有復選框,所以我想保存復選框的state所以我在[adapter-class] onbindviewholder方法中為復選框創建單擊列表器,以存儲mysqlite數據庫中復選框的state,然后我正在檢索這些值和保存到復選框狀態

- 問題是 checkbox_state 僅在我重新打開我的應用程序時才刷新

@Override
public void onBindViewHolder(@NonNull myviewholder holder, int position) {

checkBox.setOnClickListener(
   new View.OnClickListener() {
    @Override
    public void onClick(View v) {

     if (checkBox.isChecked() == true){
     database db1 = new database(context);
     db1.update_data_ck( String.valueOf(id.get(getAdapterPosition()) ), "true");
     } 
     else {
     database db1 = new database(context);
     db1.update_data_ck( String.valueOf(id.get(getAdapterPosition()) ),"false");
     }
  }});
}              

//這里的id是arraylist

我看不到您正在更新復選框的 state 的代碼,對於每個視圖,您必須從數據庫中讀取復選框的 state 並在 bindviewholder 中設置,

比如:checkBox.setChecked(readCheckBoxStateFromDB())

如果您想在數據庫中保存復選框的 state,而不是查看創建檢查值並設置復選框的 state,您還可以使用共享偏好來存儲 state,但現在推薦的方式是您可以輕松使用房間實時數據更新方式 SQL Lite 編寫太多代碼以保存 state 並檢索 state

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM