LongClick 리스너를 어댑터나 뷰홀더 안에서 처리하지 마시고 액티비티나 프레그먼트에서 세팅해서 사용하세요. 그래야 액티비티나 프레그먼트에 있는 뷰들에 접근이 쉬워집니다.
public class MyAdapater extends RecyclerView.Adapter<MyViewHolder> [
interface Listener {
void onItemLongClicked(MyItem item);
}
private Listener listener;
public void setListener(Listener listener) {
this.listener.= listener;
}
@Override
public void onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext(), R.layout.my_layout, parent, false);
return new MyViewHolder(itemView, listener);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.biind(getItem(position);
}
}
ReyclerView.Adapter adpater = ....
adapter.setListener(new MyAdapater.Listener() {
@Override
public void onItemLongClicked(MyItem item) {
// floatingButton, navigationBar 설정
}
});