无法从RecyclerView适配器类调用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从RecyclerView适配器类调用方法相关的知识,希望对你有一定的参考价值。

我创建了一个recyclerView -

public class PlayerListRecyclerViewAdapter extends RecyclerView.Adapter<PlayerListRecyclerViewAdapter.ViewHolder>


 playerAdapter = new PlayerListRecyclerViewAdapter(this,cursor, playerDataSet);
        playerRecyclerView.setAdapter(playerAdapter);

一切正常,但我创建了以下方法:

public void swapCursor(Cursor newCursor) {
    // Always close the previous mCursor first
    if (pCursor != null) pCursor.close();
    pCursor = newCursor;
    if (newCursor != null) {
        // Force the RecyclerView to refresh
        this.notifyDataSetChanged();
    }
}

但是当我尝试从链接到适配器的活动中调用它时,它找不到它:

 new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.RIGHT) {
            @Override
            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
                //Do nothing, we are not moving anything
                //But maybe we can let the user arrange their list?
                return false;
            }

            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
                long id = (long) viewHolder.itemView.getTag();
                removePlayer(id);
                playerAdapter.swapCursor(getAllPlayers());

            }
        }).attachToRecyclerView(playerRecyclerView);
    }

交换光标为红色,在适配器中显示从未使用过的消息。

我想跟随:

https://github.com/udacity/ud851-Exercises/blob/student/Lesson07-Waitlist/T07.05-Solution-AddGuests/app/src/main/java/com/example/android/waitlist/GuestListAdapter.java

但我不确定我错过了什么?其他一切正常,我可以刷卡,它加载细节。所有好的只是出于某种原因调用此方法不起作用。

答案

请检查您的播放器适配器是否为空值。

因为swapCursor方法在定义playeradapter对象后访问。

if(playerAdapter!=null){
playerAdapter.swapCursor(getAllPlayers());     
}
另一答案

检查您的代码以获取playerAdapter的声明。它应该是: -

PlayerListRecyclerViewAdapter playerAdapter;

代替

RecyclerView.Adapter playerAdapter;

以上是关于无法从RecyclerView适配器类调用方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数

从 recyclerview 的适配器访问父片段方法

有没有更好的方法从适配器获取对父 RecyclerView 的引用?

从片段类中的对话框添加项目到recyclerview。

recyclerview 适配器如何知道调用 onCreateViewHolder?

无法将数据从RecyclerView适配器传递到Viewpager适配器