簡體   English   中英

setOnClickListener RecyclerView 適配器中的 notifyDataSetChanged

[英]notifyDataSetChanged in setOnClickListener RecyclerView Adapter

如何在適配器中的Recylerview之后更新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();
                    }
                }
            });

日志貓:

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適配器中獲取適配器?

在設置 notifyDataSetChanged() 之前,確認適配器已初始化並將適配器設置為RecyclerView

然后,檢查此代碼

if(adapter!=null){ 
  adapter.notifyDataSetChanged();
}

從谷歌開發者網站查看此文檔

https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#getAdapter()

我認為你應該在調用 notifyDataSetChanged() 之前確認適配器不為空

您需要檢查您的適配器是否為空,然后執行 notifyDataSetChanged();

您可以創建列表適配器類的適配器對象並在您的活動開始時將數據傳遞給它,然后 onclicklistener 只需添加這個

if(adapter!=null)
 { 
  adapter.notifyDataSetChanged();
 }

暫無
暫無

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

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