java - 如何打印动态更新 View 的当前 XML

标签 java android xml android-layout android-xml

假设我在 Android Studio 应用程序中有一些 View ,可以通过 JAVA 代码更改。

让我们使用一个简单的 TextView 作为示例。它的 XML 代码位于其各自的布局文件中。

但是在代码运行时,我使用其 .setText() 方法来设置新文本。

如何在更改后打印其新的 XML 布局以查看其形成方式?

这对于研究更复杂的元素并通过 XML 声明它们完整而不必通过代码进行大量初始化非常有趣。


不要拘泥于给出的示例。预期的解决方案应该显示 any View 的完整 XML。

最佳答案

Android 使用 XML 布局来帮助您表达观点而无需编写代码,但没有简单的方法可以返回到 XML。您必须自己编写此代码,方法是编写代码来爬取 View 层次结构,检查每个 View 中的每个可能的设置,并输出与这些设置匹配的 XML。我怀疑在某些情况下,如果 View 没有可以在 XML 中设置的每个属性的访问器方法,这可能会非常困难甚至不可能。

简而言之,一般的理解是,从资源中扩充 View 是开发人员唯一需要担心 XML 的情况。事实上,XML 甚至并不真正存在于 APK 中(它被预编译为另一种二进制格式。)

关于java - 如何打印动态更新 View 的当前 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35283052/

相关文章:

java - 在eclipse中编译java程序

java - Swing JTable 中 autoCreateRowSorter 的初始状态

java - 从 Activity 调用服务但在 logcat 中未获取任何内容?

java - OnTouch 返回 "false"但触摸事件未传递到基础 View

java - 如何使用 JDateChooser 获取/计算总月数

java - Double.NaN isCloseTo double 值意外返回 true

c++ - 如何在三星 galaxy tab 等 Android 设备上运行 c 或 c++ 程序?

xml - 如何在 XSLT 中获取以下同级

XML 解析错误格式不正确。问题出在变量内容上,解决方法吗?

c++ - boost::archive::xml_iarchive 因 xml(反序列化上下文)而失败