对于要向单击事件添加反应的每个视图,最好使用方法扩展单击界面:
public interface OnItemClickListener
{
void OnItemImageClicked(int position, View v);
void OnItemNameClicked(int position, View v);
}
在您的viewHolder中:
viewReceptionistImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
if(listener != null)
{
int position = getAdapterPosition();
if(position != RecyclerView.NO_POSITION)
{
listener.OnItemImageClicked(position, v);
}
}
}
});
tvViewReceptionistName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
if(listener != null)
{
int position = getAdapterPosition();
if(position != RecyclerView.NO_POSITION)
{
listener.OnItemNameClicked(position, v);
}
}
}
});
然后,在ViewReceiptointers活动中,您只需实现接口并覆盖方法(因为它们会很多)。
然后在适配器中设置侦听器,如下所示:
viewReceptionistAdapter.setOnItemClickListener(this);
或者您可以使用旧方法:
viewReceptionistAdapter.setOnItemClickListener(new ViewReceptionistAdapter.OnItemClickListener() {
@Override
public void OnItemImageClicked(int position, View v)
{
Toast.makeText(ViewReceptionistActivity.this, "You Clicked " + position + "Image View: " + v, Toast.LENGTH_SHORT).show();
}
@Override
public void OnItemNameClicked(int position, View v)
{
Toast.makeText(ViewReceptionistActivity.this, "You Clicked " + position + " TextView: " + v, Toast.LENGTH_SHORT).show();
}
});