点击RecyclerView项目后如何打开对话框?

8

当我点击RecyclerView项目时,希望打开对话框。单击后的提示显示在屏幕上,但没有打开对话框。

代码:

  public class Gridview_adapter extends RecyclerView.Adapter<Gridview_adapter.Myholder> {


    private ArrayList<Photos_model> list;
    private Activity ctx;


    public Gridview_adapter(Activity ctx, ArrayList<Photos_model> list) {
        this.list = list;
        this.ctx = ctx;
    }

    @Override
    public Gridview_adapter.Myholder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_gridview, parent, false);
        return new Gridview_adapter.Myholder(view);
    }

    @Override
    public void onBindViewHolder(Gridview_adapter.Myholder holder, int position) {

        final Photos_model id = list.get(position);

        Picasso.with(ctx).load(list.get(position).getImage()).resize(250, 400).into(holder.image);

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                Toast.makeText(ctx, "Selecteddddddddddddd upper", Toast.LENGTH_SHORT).show();


                final Dialog dialog = new Dialog(ctx);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setContentView(R.layout.image_perview);


            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class Myholder extends RecyclerView.ViewHolder {

        private ImageView image;

        public Myholder(View itemView) {
            super(itemView);

            image = (ImageView) itemView.findViewById(R.id.gridimages);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                }
            });


        }


    }
}

你忘记了 dialog.show(); - Piyush
谢谢Piyush,但我想在整个屏幕上显示对话框,但它只显示在有限的区域。我该如何解决这个问题? - Navjot.jassal
您可以为对话框设置高度和宽度匹配父级。 - Piyush
1个回答

11

添加 dialog.show();

final Dialog dialog = new Dialog(ctx);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.image_perview);
dialog.show();

注意

对话框全屏显示

DisplayMetrics metrics = ctx.getResources().getDisplayMetrics();

int DeviceTotalWidth = metrics.widthPixels;
int DeviceTotalHeight = metrics.heightPixels;

final Dialog dialog = new Dialog(ctx);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.image_perview);
dialog.getWindow().setLayout(DeviceTotalWidth ,DeviceTotalHeight);
dialog.show();

比以前好了,但仍然没有覆盖全屏幕。左、右和顶部大约有15dp的边距,底部是好的。 - Navjot.jassal
1
@Navjot.jassal 请检查您的父布局或对话框布局xml文件。是否有任何填充/边距? - IntelliJ Amiya
1
@Navjot.jassal 这是我的职责。 - IntelliJ Amiya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接