我对此问题进行了大量研究,但我没有得到我想要的答案。 所以我确实有一个应用程序从服务器获取字符串。该系列字符串采用XML格式。
以下是我将从服务器获取的示例(您可以看到它的布局):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/number_ref" />
<EditText
android:id="@+id/etTxtNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subject_ref" />
<EditText
android:id="@+id/etTxtSubject"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/body_ref" />
<EditText
android:id="@+id/etTxtBody"
android:layout_width="match_parent"
android:layout_height="200dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btnTxtSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save_ref"/>
<Button
android:id="@+id/btnTxtSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send_ref"/>
<Button
android:id="@+id/btnTxtClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/close_ref"/>
</LinearLayout>
</LinearLayout>
这将根据将从服务器上传的xml文件进行更改。我的问题是如何将这些字符串系列实现为布局并作为活动布局加载。我想将它保存在xml文件中的设备的SD卡中,并将其加载为布局,但我想它在运行后无法重新编译代码。有什么建议?谢谢。
答案 0 :(得分:7)
如Android documentation中所述,布局xml文件在运行时未使用 - 它们在编译时被编译为二进制代码。因此,您无法直接将xml加载为布局。
您必须编写读取xml的代码,解释它,并使用Android api方法创建相应的View。
答案 1 :(得分:1)
常见用例 如果您需要A / B测试不同的UI设计而无需重新上传您的APK。 如果您的应用的UI根据不同的用户或方案动态更改。 如果您需要快速实时部署UI修复程序。 json2view可以帮助您。
答案 2 :(得分:0)
我认为现在可以使用android中的动态布局完成。
https://medium.com/mindorks/creating-dynamic-layouts-in-android-d4008b72f2d