ViewStub - 显示包含动态内容的视图

时间:2012-10-26 22:08:12

标签: java android android-layout

这可能是一个愚蠢的问题,所以我很抱歉;我对Android很新。

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

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

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

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

1 个答案:

答案 0 :(得分:1)

事实证明这并不难实现。我只需要在膨胀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");