У меня есть вид с button
и recyclerview
.В адаптере recyclerview
у меня есть прослушиватель событий OnClick
и OnLongClick
и методы в моем MainActivity
.У меня нет проблем с определением позиции предметов в OnLongClick
, так как он используется только предметами в утилизаторе, но OnClick
он используется и в button
.
Это кодв адаптере:
@ Переопределить public void onClick (Просмотреть представление) {if (mListener! = null) {mListener.onClick (просмотреть);}}
@Override
public boolean onLongClick(View v) {
if (mLongListener != null) {
mLongListener.onLongClick(v);
}
return true;
}
public void setOnClickListener(View.OnClickListener listener) {
mListener = listener;
}
public void setOnLongClickListener(View.OnLongClickListener listener) {
mLongListener = listener;
}
И код в моей MainActivity:
@ Переопределить public void onClick (View v) {int id = v.getId ();switch (id) {case R.id.new_note_tv: ... break;по умолчанию: int posicion = recycler.getChildAdapterPosition (v);окончательное примечание selectedNote = notes.get (posicion);перерыв;}}
@Override
public boolean onLongClick(View v) {
int posicion = recycler.getChildAdapterPosition(v);
final Note selectedNote = notes.get(posicion);
...
}
Мне удалось сделать это в случае по умолчанию, но я хотел бы знать, есть ли более эффективный способ добиться этого в случае, или я не могу использоватьтот же OnClick
метод в MainActivity
, как я должен это сделать.