【问题标题】:How to call clicklistener of an item's textview inside a recyclerview outside the adapter?如何在适配器外部的 recyclerview 中调用项目 textview 的 clicklistener?
【发布时间】:2018-12-04 23:57:43
【问题描述】:

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

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

由于没有函数可以调用我可以传递位置的 onclick。

我认为 holder.itemview.callonclick() 会起作用。但它不起作用。

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

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

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

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

    }

    确保你在你希望代码被执行的类中实现了这个接口并实现了它的方法。然后你可以像这样将这个listerer的引用传递给适配器。

    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时,你会得到实现的方法调用。

    【讨论】:

      【解决方案2】:

      你可以在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..
      
                  }
              });}
      

      【讨论】:

        猜你喜欢
        • 2021-11-29
        • 1970-01-01
        • 2017-02-24
        • 2020-07-27
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        • 2017-09-06
        相关资源
        最近更新 更多