如何在适配器外部的recyclerview内调用项目的textview的clicklistener?

时间:2018-12-04 23:57:43

标签: android android-recyclerview

我在一个活动中有recyclerview。我在每个项目中都有一些视图。假设一个textview,我正在那个特定的视图上实现一个点击监听器。

但是,在某些情况下,我必须调用该textview特定位置的clicklistener。

因为没有函数可以调用该位置的onclick。

我认为holder.itemview.callonclick()可以工作。但这不起作用。

有什么方法可以调用recyclerview的特定位置的itemview的textview。

2 个答案:

答案 0 :(得分:1)

您可以使用如下界面创建自定义点击侦听器。

public interface ClickInterface {
public void recyclerviewOnItemClick(int position);

}

确保在要执行代码的类上实现此接口并实现其方法。然后,您可以将此列表器的引用传递给适配器,像这样。

TestAdapter adapetr = new TestAdapter (this);
listview.setAdapter(adapter);

在适配器中:

private ClickInterface clickInterface;
public TestAdapter (ClickInterface clickInterface) {
    this.clickInterface = clickInterface;
}

viewHolder.txtview.setOnClickListener(v -> 
clickInterface.recyclerviewOnItemClick(position));

-单击textview时,将实现方法调用。

答案 1 :(得分:0)

您可以在Holder类中尝试这样,

  mTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             if (getAdapterPosition()== YOUR_POS)
             {
               code..
             }
            }
        });

或在onBindViewHolder中,`

if(i==YOUR_POS){ holder.mTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

               code..

            }
        });}