单击RecyclerView的项目时显示AlertDialog



我单击RecyclerView的一个项目以显示对话框,但在单击该项目时出错。

指定的子级已经有一个父级。必须调用removeView((首先在孩子的父母身上。

这是我的代码:

holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent = new Intent(v.getContext(), AddMestAct.class);
intent.putExtra("photo_url", model.getPhoto());
intent.putExtra("ID", model.getReparsId());
intent.putExtra("RestId", model.getRestoId());
intent.putExtra("prix", model.getPrix());
intent.putExtra("nomresto", model.getNomRepars());
//v.getContext().startActivity(intent);
final AlertDialog.Builder alert = new AlertDialog.Builder(v.getContext());
final View view1 = LayoutInflater.from(v.getContext()).inflate(R.layout.customdialog, null);
final EditText input = (EditText) view1.findViewById(R.id.password);
Button btn_cancel = (Button) view1.findViewById(R.id.btncancel);
Button btn_modifie = (Button) view1.findViewById(R.id.btnok);
TextView MontreNomRepars = (TextView) view1.findViewById(R.id.txt);
MontreNomRepars.setText(model.getNomRepars());
alert.setView(v);
final AlertDialog alertDialog = alert.create();
alertDialog.setCanceledOnTouchOutside(false);
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
btn_modifie.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(view1.getContext(), "Code erroné", Toast.LENGTH_SHORT).show();
}
});
alertDialog.show();
}
});

抛出错误的行是:

alertDialog.show();

alert.setView(v)更改为alert.setView(view1)

变量命名很重要。你应该认真对待它。

在适配器中膨胀视图时,将attachToRoot设置为false

像这个

View view = LayoutInflater.from(context).inflate(R.layout.item_blocked, parent, false);

最新更新