Есть 2 способа сделать это: 1) Вы можете использовать interface
, чтобы закрыть ваш диалог. 2) Вы можете отправить свой объект диалога в конструкторе вашего адаптера, и после этого, когда вы установите метод click в адаптере, затем установите их dialog.dismiss();
// это будет сделано в вашем классе адаптера
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private OnRecyclerItemClick clickListner;
@BindView(R.id.vh_selectbucketmenu_rellayout) RelativeLayout vhLayout;
int mPosition;
public ViewHolder(@NonNull View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
vhLayout.setOnClickListener(this);
}
@Override
public void onClick(View view) {
mPosition = getAdapterPosition();
clickListner.dismissDialog();
//How to dismiss the menu?
}
}
, и это будет сделано в вашей деятельности / фрагмент
private OnRecyclerItemClicklistner listner = new ViewPlanSelectedListner() {
@Override
public void OnRecyclerItemClick() {
dialog.dissmis();
}
};
// Нет отправить объект listner в свой конструктор адаптера:
private void setupView(){
View view = LayoutInflater.from(mContext)
.inflate(R.layout.popupmenu_selectbucket, null);
ButterKnife.bind(this, view);
setContentView(view);
mAdapter = new SelectBucketAdapter(mContext, mBucketNames, mImagesBucket, listner);
mRecycler.setLayoutManager(new LinearLayoutManager(mContext));
mRecycler.setAdapter(mAdapter);
}