获取SQLiteOpenHelper构造函数的上下文

时间:2018-12-15 18:50:28

标签: java android

在用户单击列表项之一上的图像按钮后,我试图从SQLite数据库和Android中的recyclerview删除记录。

该项目正在从recyclerview中删除,但我不知道如何从数据库中删除它。

我知道必须创建DatabaseHelper类的实例才能调用我的remove方法,但是当我在recyclerview适配器onBindViewHolder方法中调用此方法时,我不确定要作为参数作为上下文传递什么。

我尝试使用'this',并传递Context类型的变量,这两个变量均为null。我不确定如何进行。

此外,我应该更改创建DatabaseHelper的位置吗?我觉得不必每次点击都创建一个新实例。

感谢您的帮助。

以下来自RecyclerViewAdapter类。

@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int position) {
    final Contact contact = contactsList.get(position);
    viewHolder.contactName.setText(contact.getFullName());
    viewHolder.contactInitials.setText(contact.getInitials());

    viewHolder.removeItemImgView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DatabaseHelper databaseHelper = new DatabaseHelper(); //Unsure what to pass in as the context here
            databaseHelper.removeContact(contactsList.get(position).getEmailAddress());
            contactsList.remove(position);
            notifyItemRemoved(position);
            notifyItemRangeChanged(position, contactsList.size());
        }
    });
}

0 个答案:

没有答案