Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用文件室删除行项目sqlite时的空对象引用_Android_Sqlite_Android Studio_Android Recyclerview_Android Room - Fatal编程技术网

Android 使用文件室删除行项目sqlite时的空对象引用

Android 使用文件室删除行项目sqlite时的空对象引用,android,sqlite,android-studio,android-recyclerview,android-room,Android,Sqlite,Android Studio,Android Recyclerview,Android Room,我使用了文件室持久性,当在Recycleview上删除一个项目时出现问题,当我们在Recycleview上单击btnDelete时,在空对象引用上尝试调用虚拟方法“com.example.submode4.db.FavoriteView com.example.submode4.db.FavoriteDatabase.FavoriteView()”时会出错。 这是我的刀: @Delete void deleteFavorite(FavoriteData favoriteData); 这是我的适

我使用了文件室持久性,当在Recycleview上删除一个项目时出现问题,当我们在Recycleview上单击btnDelete时,在空对象引用上尝试调用虚拟方法“com.example.submode4.db.FavoriteView com.example.submode4.db.FavoriteDatabase.FavoriteView()”时会出错。 这是我的刀:

@Delete
void deleteFavorite(FavoriteData favoriteData);
这是我的适配器,我已将查询结果输入实体(模型),但仍然存在错误:

导入android.widget.Toast;
导入com.bumptech.glide.glide;
导入com.example.submode4.CustomOnItemClickListener;
导入com.example.submode4.R;
导入com.example.submode4.db.FavoriteDatabase;
导入com.example.submode4.entity.FavoriteData;
导入java.util.ArrayList;
公共类适配器Favorite扩展了RecyclerView.Adapter{
私人ArrayList Daftar;
私人语境;
私人偏好活动偏好活动;
私有数据库;
私有静态最终字符串EXTRA_KEY=“KEY”;
AdapterFavorite(ArrayList daftarFavorite,上下文){
//未来的数据
this.daftarFavorite=daftarFavorite;
this.context=上下文;
}
类ViewHolder扩展了RecyclerView.ViewHolder{
//未来的德克拉拉斯景观
私有文本视图,发布,类型;
私人图像视图;
私人图像按钮btnDelete;
ViewHolder(视图项视图){
超级(项目视图);
Judul=itemView.findviewbyd(R.id.tv\u favorite\u name);
type=itemView.findviewbyd(R.id.tv\u favorite\u type);
release=itemView.findviewbyd(R.id.tv\u item\u release);
ivFavorite=itemView.findviewbyd(R.id.img\u item\u favorite);
btnDelete=itemView.findviewbyd(R.id.deleteFav);
}
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
//Inisialisasi布局项目untuk RecyclerView
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.item\u recycleview\u favorite,parent,false);
返回新的视图持有者(v);
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int i){
//数据库melalui数组中数据的Deklarasi变量
字符串getJudul=daftarFavorite.get(i).getJudul();
字符串getRelease=daftarFavorite.get(i).getRelease();
字符串fotoUrl=”https://image.tmdb.org/t/p/w342/“+daftarFavorite.get(i.getPath();
字符串getType=daftarFavorite.get(i).getType();
intid=daftarFavorite.get(i).getId();
Log.e(“Idne:,String.valueOf(idS));
//收集回收视图中的项目位置数据
holder.Judul.setText(getJudul);
holder.release.setText(getRelease);
使用(上下文)滑动。加载(fotour)。放入(holder.ivFavorite);
holder.type.setText(getType);
FavoriteData FavoriteData=新的FavoriteData();
setJudul(daftarFavorite.get(i.getJudul());
setDeskripsi(daftarFavorite.get(i).getDeskripsi());
setRelease(daftarFavorite.get(i).getRelease());
setBahasa(daftarFavorite.get(i.getBahasa());
setType(daftarFavorite.get(i).getType());
setPath(daftarFavorite.get(i.getPath());
holder.btnDelete.setOnClickListener(新CustomOnItemClickListener(i,(视图,位置)->{
FavoriteData favoriteDelete=新的FavoriteData();
favoriteDelete.setJudul(daftarFavorite.get(i.getJudul());
favoriteDelete.setDeskripsi(daftarFavorite.get(i).getDeskripsi());
favoriteDelete.setRelease(daftarFavorite.get(i).getRelease());
favoriteDelete.setBahasa(daftarFavorite.get(i.getBahasa());
setType(daftarFavorite.get(i).getType());
setPath(daftarFavorite.get(i.getPath());
deleteTask(favoriteDelete);
}));
holder.itemView.setOnClickListener(v->{
Intent Intent=new Intent(context.getApplicationContext(),DetailFavorite.class);
intent.putExtra(额外密钥,(可包裹)收藏夹数据);
意向书(“类型”、“电影”);
背景。开始触觉(意图);
});
}
@凌驾
public int getItemCount(){
//蒙吉通数据/ukuran-dari阵列
返回daftarFavorite.size();
}
私有void deleteTask(最终FavoriteData FavoriteData){
类DeleteTask扩展了AsyncTask{
@凌驾
受保护的空位背景(空位…空位){
database.favoriteView().deleteFavorite(favoriteData);
返回null;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
Toast.makeText(上下文“已删除”,Toast.LENGTH_LONG.show();
}
}
DeleteTask dt=新的DeleteTask();
dt.execute();
}

}
您的数据库对象为空。请检查适配器是否正在初始化它。还要添加FavoriteDatabase和适配器类的完整代码。MyDatabase代码仅与此类似,但对于适配器,将完成所有代码。@Rajnishsuryavanshi我已将适配器编辑为完整代码。请查看它。感谢您没有初始化FavoriteDatabase对象为空。另外,您的FavoriteDatabase不完整。我建议您通过此链接尝试实现。您的数据库对象为空。请检查适配器是否正在初始化它。另外,请添加FavoriteDatabase和适配器类的完整代码。MyDatabase代码仅与此类似,但for Adapter将完成所有操作代码。@Rajnishsuryavanshi我已将适配器编辑为完整代码。请检查它。谢谢您没有初始化FavoriteDatabase对象,它为空