如何使底部 Sheet 对话框动态化?

How do I make my Bottom Sheet Dialog dynamic?

这是我第一次尝试在我的 Android Studio 项目中实现 BottomSheetDialog。为了更加熟悉这个过程,我尝试按照 Youtube 上的这个教程进行操作:https://youtu.be/hfoXhiMTc0c。在我的实际 Java Class 中,当我扫描包含不同信息的 NFC 芯片时,底部 Sheet 被激活。但是我无法在 Sheet 上动态显示来自芯片的信息。我猜这是因为 Sheet 是静态的?我如何才能显示来自芯片的信息,这些信息已经存储在我的 Java class 的变量中,并显示在 BottomSheet?[=13= 的文本字段中]

感谢任何帮助,谢谢!

这是 java class 的代码片段,其中底部 Sheet 被扩展:

final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(

                Scan.this, R.style.BottomSheetDialogTheme
        );
        View bottomSheetView = LayoutInflater.from(getApplicationContext())
                .inflate(
                        R.layout.layout_bottom_sheet,
                        (LinearLayout)findViewById(R.id.bottomSheetContainer)

                );
        bottomSheetView.findViewById(R.id.addToCloset).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                bottomSheetDialog.dismiss();
            }
        });
        bottomSheetDialog.setContentView(bottomSheetView);
        bottomSheetDialog.show();```

我不熟悉 BottomSheetDialog。但是,

        View bottomSheetView = LayoutInflater.from(getApplicationContext())
            .inflate(
                    R.layout.layout_bottom_sheet,
                    (LinearLayout)findViewById(R.id.bottomSheetContainer)

            );

您应该可以将上面的代码替换为,

    View bottomSheetView = LayoutInflater.from(getApplicationContext())
        .inflate(
                R.layout.layout_bottom_sheet,
                null

        );

现在转到 layout_bottom_sheet.xml 布局文件。根据您的代码,它应该有一个没有 id 的线性布局。给它一个ID。我将该 ID 取为“test_ll”。

下面上面的代码就可以了,

LinearLayout ll = bottomSheetView.findViewById(R.id.test_ll);

之后你可以动态地添加视图到ll。要动态添加视图到 LinearLayout 参考,

Add text view to Linear layout

编辑:

如果你想在 LinearLayout 中使用视图,你可以通过,

View view = ll.findViewById(R.id.view_id);

如果你的textview在ll中,

TextView textView1 = ll.findViewById(R.id.tvcolor);       
textView1.setText("Hello!!");

这将解决您的问题。