首页 > 解决方案 > 单击 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();

标签: android

解决方案


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

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


推荐阅读