应用程序在Dialog中的初始化视图上崩溃

时间:2019-09-17 11:39:16

标签: java android android-studio android-recyclerview

我试图在单击recyclerview元素中的某些文本视图时打开对话框窗口。

如果我不尝试初始化文本视图,则打开窗口的效果非常好。 如果我这样做,则该应用程序崩溃。

在我的guestMessage setOnClickListener中,我打开一个对话框。 在onClick中,我初始化应包含文本(名称和消息)的TextView。

@Override
    public void onBindViewHolder(@NonNull final GuestViewHolder holder, final int position) {
        final Guest guest = guests.get(position);
        holder.guestName.setText(guests.get(position).getGuestName());
        //holder.guestMessage.setText(guests.get(position).getGuestMessage());
        holder.guestPhoneNumber.setText(guests.get(position).getGuestPhoneNumber());
        holder.personsCount.setText(guests.get(position).getPersonsCount());

        holder.guestMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Dialog messageDialog = new Dialog(context);
                TextView name = messageDialog.findViewById(R.id.messageTitlePopUp);
                TextView message = messageDialog.findViewById(R.id.messageInPopup);
                messageDialog.setContentView(R.layout.message_dialog_popup);

                name.setText(guests.get(position).getGuestName());
                message.setText(guests.get(position).getGuestMessage());

                messageDialog.show();
            }
        });
    }

1 个答案:

答案 0 :(得分:0)

您正在初始化视图,然后在对话框上设置内容视图,这会导致问题。

要解决问题,只需更改对话框代码的初始化顺序。

  final Dialog messageDialog = new Dialog(context);
  messageDialog.setContentView(R.layout.message_dialog_popup);
  TextView name = messageDialog.findViewById(R.id.messageTitlePopUp);
  TextView message = messageDialog.findViewById(R.id.messageInPopup);