2016-04-27 66 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

可是如何才能讓外面適用於列表行內部的一些視圖的適配器偵聽器?按鈕例如? –

相關問題