我目前正在开发一个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) { }});
我认为您应该创建一个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();