2015-12-02 45 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) { 

     }