android - 在复选框状态更改时从回收器视图适配器更新 sqlite 数据库
问题描述
我想在回收站视图中的复选框状态更改上更新我的 SQLite 数据库。所有数据都列在回收站视图中。当我单击复选框时,我想调用数据库函数来更新数据库
public class OverTimeAdapter extends RecyclerView.Adapter<OverTimeAdapter.MyViewHolder> {
private Context context;
private ArrayList otId,otDate,otShift,paymentStatus;
private DatabaseHelper attendanceDB;
OverTimeAdapter(Context context,ArrayList otId,ArrayList otDate,ArrayList otShift ,ArrayList paymentStatus){
this.context =context;
this.otId = otId;
this.otDate = otDate;
this.otShift=otShift;
this.paymentStatus = paymentStatus;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
}
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
if (paymentStatus.get(position)=="1"){
holder.otListPayment.setChecked(true);
}else {
holder.otListPayment.setChecked(false);
}
OtDbId =String.valueOf(otId.get(position));
holder.otListPayment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean checked =holder.otListPayment.isChecked();
if (checked){
payStatus=1;
}else{
payStatus=0;
}
// call db update function from here
// attendanceDB = new DatabaseHelper(this); This is error
//attendanceDB.updateOvertime() /*error*/
}
});
}
@Override
public int getItemCount() {
return otDate.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
public CheckBox otListPayment;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
otListPayment =(CheckBox) itemView.findViewById(R.id.chk_ot_list_payment);
}
}
}
我们如何初始化 DBHelper 对象并调用该函数?从哪里(在哪个功能内)我可以做到?
解决方案
将回调从适配器传递到片段/活动。在片段/活动中进行数据库更改。检查这个:https ://stackoverflow.com/a/42234382/3797879
推荐阅读
- c# - 无法访问方法(带有 ASP.NET Core 的 Azure 表)
- ruby - 无法转置具有不同大小的数组
- javascript - React - 用于检索 json 数据的嵌套映射
- dns - 使用通配符创建 301 重定向
- java - 我需要做什么来解释这个 Java 程序?
- spring - Spring-Couchbase 自动生成的唯一 ID 不用于生产?
- java - 在 JPanel 中绘制缩放图像的注重性能的方法
- php - 我如何在 laravel 中修复这个关于子域的错误
- python - 列表中的两个随机值需要与图像匹配
- javascript - UnhandledPromiseRejectionWarning:ReferenceError:未定义字符串