2015-12-02 48 views
0

我曾多次使用RecyclerView,並且還處理了點擊監聽器。但我的問題是,在RecyclerView Adapter在哪個地方設置點擊收聽者更好,如onCreateViewHolder()onBindViewHolder()ViewHolder類。因爲,我知道我們可以在任何地方設置我們的功能。Click RecyclelerView中的監聽器

+0

http://stackoverflow.com/questions/24471109/recyclerview-onclick –

+0

@sumitsingh我知道這一點,但按照我的問題是哪個地方會更好。 –

回答

2

您可以爲您的容器視圖中的多個視圖設置點擊偵聽器,以實現各種目的。如果它是一個項目點擊監聽器添加到容器視圖最好的方法:

private final OnClickListener mOnClickListener = new MyOnClickListener(); 

@Override 
public MyViewHolder onCreateViewHolder(final ViewGroup parent, final int position) { 
    View view = LayoutInflater.from(mContext).inflate(R.layout.containerViewItem, parent, false); 
    view.setOnClickListener(mOnClickListener); 
    return new MyViewHolder(view); 
} 

並實行onClick()方法爲您mOnClickListener

+0

我知道這種類型的實現,但根據我的問題哪個更好? –

1

每次將視圖綁定到數據時,都會調用onBindViewHolder方法。所以最好的方法是在onCreateViewHolder方法中設置點擊偵聽器。

private final OnClickListener mOnClickListener = new MyOnClickListener(); 

@Override 
    public ViewHolder onCreateViewHolder(final ViewGroup parent, final int position) 
     { 
     View view = LayoutInflater.from(mContext).inflate(R.layout.recycler_list_item, parent, false); 
     view.setOnClickListener(mOnClickListener); 
     return new ViewHolder(view); 
    } 

@Override 
public void onClick(final View view) { 

     }