所以这件事从过去几天开始一直困扰着我。我的PostAdapter类中有一个对话框。当有人单击“更多”菜单时,会出现一个对话框(显示为底部工作表)。显示对话框没有问题。它工作得很好。但问题是点击“更多”后,如果我执行任何其他操作,对话框会自动打开几次。我必须在屏幕上点击很多次,以消除每个打开的对话框。我已经删除了代码中的对话框,但这种行为非常出乎意料。每次我对帖子执行一些操作时,对话框都会打开,即使在片段之间切换并返回显示所有帖子的主片段之后也是如此。
这很奇怪,因为对话框应该只在单击“更多”时打开,而不是在任何其他操作上打开。我试过在一些类似的问题中给出的解决方案,但没有一个奏效。
viewHolder.binding.more.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseDatabase.getInstance().getReference()
.child("Posts")
.child(post.getPostId())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
String postedBy = snapshot.child("postedBy").getValue().toString();
if (FirebaseAuth.getInstance().getCurrentUser().getUid().equals(postedBy)) {
showBottomSheetDialog(post, holder);
} else {
showBottomSheetDialogForOthersPosts(post, holder);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
private void showBottomSheetDialogForOthersPosts(Post post, RecyclerView.ViewHolder holder) {
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.bottomsheetlayout_othersposts);
LinearLayout share = dialog.findViewById(R.id.share);
LinearLayout report = dialog.findViewById(R.id.report);
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Toast.makeText(context, "Share is clicked", Toast.LENGTH_SHORT).show();
}
});
report.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Toast.makeText(context,"Report is Clicked",Toast.LENGTH_SHORT).show();
}
});
dialog.show();
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.getWindow().getAttributes().windowAnimations = R.style.BottomSheetDialogAnimation;
dialog.getWindow().setGravity(Gravity.BOTTOM);
}
您必须获得多个回调
public void onDataChange(@NonNull DataSnapshot snapshot) {}
我建议您全局声明对话框,并检查该对话框是否已经可见,如果不可见,则只显示该对话框。
final Dialog dialog = new Dialog(context);
通过范围目录访问开通权限是一种更简单的方法,但是对话框将显示一个名为“不要再问”的复选框。如果用户选择不要再问,并拒绝请求,所有未来的请求从您的应用程序给定的目录将被自动拒绝,没有请求UI将呈现给用户。应用程序无法获取权限对话框。 我们如何处理这件事?
问题内容: 如果用户到达程序末尾,我希望他们得到一个提示,询问他们是否要重试。如果他们回答是,我想重新运行该程序。 问题答案: 您可以将整个程序放在另一个while循环中,该循环询问用户是否要重试。
写了一个上传组件,需要访问手机文件,点击“选择附件”后,会弹出授权框,但是用户点击“禁止”后,再次点击“选择附件”,无法弹出确认授权框,如何才能再次弹出这个授权弹框呢 ?
5.8.2.再重构一次? 我们希望用户能够在不同的界面中感受到一致的体验,也希望我们自己管理代码能够更容易些——再重构一次吧。在此我们引入一个BaseActivity作为所有Activity的基类,将重用的代码提取出来。
我正在使用Blueprint和jQueryUI/jQuery1.11。1与。Net MVC在我正在从事的项目中。 这是模式对话框的代码,我在布局页面的部分视图中看到了该对话框。提交表单时,我有以下代码显示弹出窗口: 我需要用class="jquery_elem"包装jQuery添加到页面底部的div,因为我选择了jQuery UI的作用域为这个选择器。我使用以下CSS的覆盖: 但是,当我单击“提交
本文向大家介绍Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法,包括了Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法的使用技巧和注意事项,需要的朋友参考一下 Chrome浏览器的alert弹窗,选择了禁止再次弹出后,就不会再弹出了。 第一次弹出alert弹窗没有“禁止此页再显示对话框”选项,第二次和以后才有。 这个功能在开发测试中,或者程序出现bug时,页面不断弹出对话框时,