android - 单击 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)
。
变量命名很重要。你应该认真对待它。
推荐阅读
- powershell - Invoke-RestMethod 的结果在导出到 csv 后返回一个 system.object[]
- r - 在 r 中安装包转换器和动画绘图的问题
- xrmtoolbox - XRMToolBox SQL4CDS 无法重新下载
- r - 将一列与多列 R 上的不同数据框进行比较
- python - 列表推导从列表中删除元素
- python - tkinter 对页面的多次调用弄乱了布局
- wordpress - 忽略 URL 段并加载相同的页面 wordpress
- excel - 如何将自动填充添加到所有文本框
- node.js - 在 MERN 应用程序中的删除操作后反应前端不更新
- c - GCC:归零结构