当我从一个片段中调用它时,我的接口类不起作用

SP

我正在尝试在我的项目中实现此代码,但无法正常使用RecyclerView:如何在ImageView上捕获onClick?

我已经实现了一个接口来处理recyclerview中的onclick imageview和onclick行。问题是,当我尝试单击imageview或在该行中时,什么也没有发生。如果我在ViewHolder类中尝试相同的方法,则可以工作,因为可以看到Toast。问题是我需要我的片段中的这项工作。

我认为问题可能出在我将侦听器传递给ViewHolder的构造函数时,还是当我从片段传递侦听器时。

会有一些帮助:

我的适配器类:

 private static List<DatabaseModel> dbList;
 private static Context context;
 private RecyclerViewClickListener listener;


public class MainTimelineRecyclerAdapter extends RecyclerView.Adapter<MainTimelineRecyclerAdapter.AnViewHolder> {

    public MainTimelineRecyclerAdapter(Context context, List<DatabaseModel> dbList, RecyclerViewClickListener listener ){
        this.dbList = new ArrayList<DatabaseModel>();
        this.context = context;
        this.dbList = dbList;
        this.listener = listener;

  }

public static class AnViewHolder extends RecyclerView.ViewHolder {

        public TextView name;
        public ImageView contact;

        public AnViewHolder(final View itemLayoutView, final RecyclerViewClickListener listener) {
            super(itemLayoutView);


            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(listener != null)
                        listener.onRowClicked(getAdapterPosition());
                }
            });

            contact.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(listener != null)
                        listener.onViewClicked(v, getAdapterPosition());
                }
            });

        }
    }

 public interface RecyclerViewClickListener {
        void onRowClicked(int position);
        void onViewClicked(View v, int position);
    }
}

我的片段:

public class MainTimeline extends Fragment implements RecyclerViewClickListener {
    private RecyclerViewClickListener listener;
.
.
.

        mAdapter = new MainTimelineRecyclerAdapter(getActivity(), dbList, listener);


   @Override
    public void onViewClicked(View view, int position) {
        Toast.makeText(getActivity(), "photo", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onRowClicked(int position) {
        Toast.makeText(getActivity(), "view", Toast.LENGTH_SHORT).show();

        }
}
用户

如果要让片段监听适配器中发生的操作,则需要将其注册为适配器中发生的事件的侦听器(通过实现接口并将片段作为侦听器传递):

public class MainTimeline extends Fragment implements RecyclerViewClickListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // you don't need a private RecyclerViewClickListener listener; reference as you have the fragment itself
        mAdapter = new MainTimelineRecyclerAdapter(getActivity(), dbList, this); 
    }
    // implement the methods from the interface
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我从一个片段中调用它时,我的接口类不起作用

来自分类Dev

当我在 Private Sub Change 中调用它时循环不起作用

来自分类Dev

当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

来自分类Dev

为什么当我在单独的函数中使用$(this)并在.each()中调用它时不起作用?

来自分类Dev

我如何从一个类中创建一个NSString函数然后调用它?

来自分类Dev

当我调用它两次时 Input.GetKeyDown 不起作用

来自分类Dev

我在子类中覆盖了一个属性的setter,但是当我在超类的init方法中调用它时,为什么子类的方法响应?

来自分类Dev

当我使用ToListAsync方法时一个线程不起作用

来自分类Dev

当我有一个按钮时,C#键按下不起作用

来自分类Dev

当我从另一个 Mainstoryboard 添加 containerViews 时,导航不起作用?

来自分类Dev

当我有一个很大的结果时,Postgres 函数不起作用

来自分类Dev

我为此源创建了一个 JS 文件并调用它,但它不起作用

来自分类Dev

当我添加另一个功能(如通知)时,我的搜索功能将不起作用

来自分类Dev

当我从状态调用源时,ImageBackground 不起作用

来自分类Dev

当我输入第一个字符时,AutoCompleteTextView不起作用

来自分类Dev

当我从另一个表中选择计数时,左联接不起作用

来自分类Dev

当我们有一个单独的View控制器时,ItemController不起作用

来自分类Dev

当我单击另一个x-editable时,x-editable关闭模糊不起作用

来自分类Dev

当我给它一个列表 [..., ..., ..., ...] 作为函数参数时,QtGui.QColor 不起作用

来自分类Dev

当我将它分成另一个组件时,React-router Redirect 似乎不起作用

来自分类Dev

当我向其中发送另一个承诺时 promise.then() 不起作用

来自分类Dev

在PHPStorm中,当我有一个超类方法返回每个子类的不同类型时,如何使类型提示起作用

来自分类Dev

当我尝试使用Java在primefaces中调用方法时,p:confirmDialog不起作用

来自分类Dev

当我使用附加到类Controller的函数时,它在Yii中不起作用

来自分类Dev

当我从“学生班级”内部调用它时,为什么会给我一个错误?

来自分类Dev

我正在尝试在自身内部调用一个函数,但是它对我不起作用

来自分类Dev

当我从另一个点再次调用它时,我在函数中的 Python 循环没有再次运行

来自分类Dev

(android)当我在xml布局中声明一个片段时,我无法在该片段中获取数据

来自分类Dev

当我从片段活动导航到另一个活动时,片段活动调用destroy方法

Related 相关文章

  1. 1

    当我从一个片段中调用它时,我的接口类不起作用

  2. 2

    当我在 Private Sub Change 中调用它时循环不起作用

  3. 3

    当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

  4. 4

    为什么当我在单独的函数中使用$(this)并在.each()中调用它时不起作用?

  5. 5

    我如何从一个类中创建一个NSString函数然后调用它?

  6. 6

    当我调用它两次时 Input.GetKeyDown 不起作用

  7. 7

    我在子类中覆盖了一个属性的setter,但是当我在超类的init方法中调用它时,为什么子类的方法响应?

  8. 8

    当我使用ToListAsync方法时一个线程不起作用

  9. 9

    当我有一个按钮时,C#键按下不起作用

  10. 10

    当我从另一个 Mainstoryboard 添加 containerViews 时,导航不起作用?

  11. 11

    当我有一个很大的结果时,Postgres 函数不起作用

  12. 12

    我为此源创建了一个 JS 文件并调用它,但它不起作用

  13. 13

    当我添加另一个功能(如通知)时,我的搜索功能将不起作用

  14. 14

    当我从状态调用源时,ImageBackground 不起作用

  15. 15

    当我输入第一个字符时,AutoCompleteTextView不起作用

  16. 16

    当我从另一个表中选择计数时,左联接不起作用

  17. 17

    当我们有一个单独的View控制器时,ItemController不起作用

  18. 18

    当我单击另一个x-editable时,x-editable关闭模糊不起作用

  19. 19

    当我给它一个列表 [..., ..., ..., ...] 作为函数参数时,QtGui.QColor 不起作用

  20. 20

    当我将它分成另一个组件时,React-router Redirect 似乎不起作用

  21. 21

    当我向其中发送另一个承诺时 promise.then() 不起作用

  22. 22

    在PHPStorm中,当我有一个超类方法返回每个子类的不同类型时,如何使类型提示起作用

  23. 23

    当我尝试使用Java在primefaces中调用方法时,p:confirmDialog不起作用

  24. 24

    当我使用附加到类Controller的函数时,它在Yii中不起作用

  25. 25

    当我从“学生班级”内部调用它时,为什么会给我一个错误?

  26. 26

    我正在尝试在自身内部调用一个函数,但是它对我不起作用

  27. 27

    当我从另一个点再次调用它时,我在函数中的 Python 循环没有再次运行

  28. 28

    (android)当我在xml布局中声明一个片段时,我无法在该片段中获取数据

  29. 29

    当我从片段活动导航到另一个活动时,片段活动调用destroy方法

热门标签

归档