从服务器加载XML布局(android)

时间:2014-03-07 01:22:54

标签: java android xml android-layout

我对此问题进行了大量研究,但我没有得到我想要的答案。 所以我确实有一个应用程序从服务器获取字符串。该系列字符串采用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卡中,并将其加载为布局,但我想它在运行后无法重新编译代码。有什么建议?谢谢。

3 个答案:

答案 0 :(得分:7)

Android documentation中所述,布局xml文件在运行时未使用 - 它们在编译时被编译为二进制代码。因此,您无法直接将xml加载为布局。

您必须编写读取xml的代码,解释它,并使用Android api方法创建相应的View。

答案 1 :(得分:1)

常见用例 如果您需要A / B测试不同的UI设计而无需重新上传您的APK。 如果您的应用的UI根据不同的用户或方案动态更改。 如果您需要快速实时部署UI修复程序。 json2view可以帮助您。

答案 2 :(得分:0)