Android:在创建和显示 AlertDialog 之前获取资源 ID?

Android: Getting Resource ID before AlertDialog is created and shown?

我目前正在努力让用户点击一个图像,然后将显示一个带有该图像放大版本的 AlertDialog。我不太确定 AlertDialog 是否是解决此问题的最佳方法,但这是我目前的解决方案。

我发现自己在显示警报对话框之前很难获取 ImageView 的资源 ID。这是发生错误的确切代码段(评论是失败的修复尝试):

mPhotoView.setOnClickListener(new View.OnClickListener() {
    @SuppressLint("ResourceType")
    @Override
    public void onClick(View view) {
        if(mPhotoView != null){
            AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
            LayoutInflater inflater = requireActivity().getLayoutInflater();

            dialog.setView(inflater.inflate(R.layout.zoomed_image, null)).create();
                  
            //medImg.setImageResource(dialog.getContext().getResources().getLayout(R.layout.zoomed_image).getIdAttributeResourceValue(R.id.ivZoomedImg));
            //ivZoomedImg =  getActivity().findViewById(R.id.ivZoomedImg);
            //ivZoomedImg = view.findViewById(R.id.ivZoomedImg);
                    

            Bitmap bm = PictureUtils.getScaledBitmap(mPhotoFile.getPath(), getActivity());

            ivZoomedImg.setImageBitmap(bm); // <- null reference
            dialog.show();
                     
        }
    }
});

具体来说,我似乎无法找到一种方法来访问本应通过 LayoutInflator 实例化的 R.id.ivZoomedImg?老实说,我什至不确定这是否可行,尽管我不明白为什么不行。有谁知道解决这个问题的最佳方法是什么?

一些注意事项:

R.layout.zoomed_image 只是一个 XML 布局,包含一个 ImageView,id 为 R.id.ivZoomedImg

mPhotoView 是被点击显示更大的图像

修复涉及简单地实例化一个独立的视图,您可以从中提取 ImageView 资源 ID!

添加的代码行数:

View v = inflater.inflate(R.layout.zoomed_image, null);
ivZoomedImg = v.findViewById(R.id.ivZoomedImg);
dialog.setView(v).create();