在适配器中的setOnClickListener之后如何更新Recylerview
bDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Boolean succes = dbDatasource.delete_ayat_bookmark((qurans.get(position).getnSurat()), qurans.get(position).getnAyat());
if (succes) {
Message message = new Message();
message.pesan_surat_ayat(context, "hapus", (qurans.get(position).getnSurat() + 1), qurans.get(position).getnAyat());
adapter.notifyDataSetChanged();
dialog.dismiss();
}
}
});
logcat:
Process: com.ideabrains.alquranindonesia, PID: 17401
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$Adapter.notifyItemRemoved(int)' on a null object reference
at com.ideabrains.alquranindonesia.Bookmark_Adapter$1$4.onClick(Bookmark_Adapter.java:187)
at android.view.View.performClick(View.java:5637)
适配器为空,
如何在RecyclerView
适配器中获取适配器?
答案 0 :(得分:1)
在设置notifyDataSetChanged()之前,请确认适配器已初始化并将适配器设置为RecyclerView
。
然后,检查此代码
if(adapter!=null)
{
adapter.notifyDataSetChanged();
}
答案 1 :(得分:0)
从Google开发者网站检查此文档
https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#getAdapter()
我认为您应在调用notifyDataSetChanged()之前确认适配器不为空
答案 2 :(得分:0)
您需要检查适配器是否为空,然后执行notifyDataSetChanged();
您可以使列表适配器类成为适配器对象,并在活动开始时将数据传递给它,然后onclicklistener只需添加此
if(adapter!=null)
{
adapter.notifyDataSetChanged();
}