AlertDialog.Builder不显示

问题描述 投票:0回答:2

我目前正在开发一个Android应用程序,我想检查从联系人中挑选的联系人是否已经存在于数据库中(这意味着他已经是该应用程序的用户),并且是否存在将其添加到列表中。我正在使用Firebase Realtime数据库,但我的问题是,如果在数据库中找不到用户并且它没有显示,我试图显示AlertDialog。

我提到该代码有效:如果数据库中存在该联系人,它将在列表中添加该联系人;如果不存在,则不会添加该联系人,但是我的AlertDialog不会显示。

这是我到目前为止所尝试的:

users_table.orderByChild("phoneNumber").equalTo(phoneNumber).addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            for(DataSnapshot data : dataSnapshot.getChildren()){
                                if(data.exists()){
                                    participantsList.add(user);
                                    adapter.notifyDataSetChanged();
                                }else if(!data.exists()){

                                 new AlertDialog.Builder(AddParticipants_Fragmnet.this.getContext())
                                            .setMessage(name + " is not a member of our app")
                                            .setTitle("Warning")
                                            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(DialogInterface dialog, int which) {
                                                    dialog.dismiss();
                                                }
                                            }).show();


                                }
                            }
                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) { }});
java android firebase android-alertdialog
2个回答
0
投票

我认为您应该创建一个AlertDialog.Builder,并根据需要进行构建;然后在调用show()之前先调用create()。可能看起来像这样:


AlertDialog.Builder builder = new AlertDialog.Builder(AddParticipants_Fragmnet.this.getContext());
builder.setMessage(name + " is not a member of our app")
builder.setTitle("Warning")
builder.setPositiveButton("Ok", 
         new DialogInterface.OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
             }
         });
AlertDialog mdialog = builder.create();
mdialog.show();

© www.soinside.com 2019 - 2024. All rights reserved.