2016-04-27 68 views
0

我已经创建了一个额外的类来实现RecyclerView上的监听器,但是它引用了整个行视图,并且我还希望在该行中的一个View中有一个监听器,在这种情况下是按钮。如何从RecyclerView中的addOnItemTouchListener获取Android中的某些视图?

我知道我可以从CustomViewHolder访问该视图,但问题是我无法将某些值从适配器传递到适配器调用的活动。如何从addOnItemTouchListener获得此视图?这里是代码:

recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), list, new ClickListener() { 
     @Override 
     public void onClick(View view, int position) { 
      // Is it possible to check which view is clicked here 
      // Something like this 
      if (view == findViewById(R.id.btn)) { 
       // do something 
       // but this is not working. 
      } 
     } 

     @Override 
     public void onLongClick(View view, int position) { 

     } 
    })); 

或任何其他建议谁可以实现这一点,请让我知道。

回答

0

你可以在这种方式

public interface OnRecyclerRowListener { 
    void onClick(int position, View v); 

    void onLongClick(int position, View v); 
} 

创建回调监听器,让您的活动实现它,并通过一个实例给它的适配器并在您的适配器onBindViewHolder

holder.itemView.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     onRecyclerRowListener.onClick(holder.getAdapterPosition(),v); 
    } 
}); 
+0

可是如何才能让外面适用于列表行内部的一些视图的适配器侦听器?按钮例如? –

相关问题