1

这可能是一个愚蠢的问题,如果是这样,我很抱歉;我对Android相当陌生。

但无论如何 - 我有一个工作的 ViewStub,它会根据不同的情况被不同的布局所取代。当我调用 setLayoutResource() 方法,然后将 setVisibility 设置为 VISIBLE 时,它可以正常显示正确的布局。但是,我现在需要在这个视图中显示为动态的一些内容(即,我需要通过代码设置它,而不仅仅是显示静态布局)。

这甚至可能吗?setLayoutResource() 方法只需要一个静态布局资源 ID,但我需要该布局 XML 文件才能使其 TextViews 包含来自我已准备好使用的某些代码的非静态文本。如果可能,应该如何处理?我理解拥有一个 Java 类并膨胀 XML 以将其自身附加到它以更新字段的概念,但我看不出这与我手头的代码有什么关系,因为它只是我需要设置的布局资源 int对于 ViewStub 中的 setLayoutResource() 方法。

如果需要,我可以发布现有代码,但我不确定它是否能做更多的事情,而不是把帖子弄得乱七八糟。供参考 - 我只有一个带有一些 TextView 的简单布局 XML 文件,然后是包含 ViewStub 的主 XML,它是自定义对话框的一部分。用户能够实例化 Dialog 并设置布局,进而设置 ViewStub 的布局。这是我需要使用动态内容的布局。

任何建议将不胜感激。谢谢!

4

1 回答 1

2

事实证明,这并不太难实现。我只需要在对 ViewStub 进行膨胀后使用 TextView 布局的 ID 来获取实际 TextView 的副本,然后我就可以轻松地将它们的文本设置为我想要的任何类型的动态/自定义文本。

我还需要注释掉通过 .VISIBLE 调用显示它的代码,而是执行以下操作(.inflate() 代码行完成与将其设置为 VISIBLE 相同的事情):

 View inflatedView = dialog.myStubView.inflate();
 TextView myTextView = (TextView) inflatedView.findViewById(R.id.my_text_view);
 myTextView.setText("Dynamic/Custom Text");
于 2012-11-02T19:05:41.650 回答