在运行时通过包含在主内存中的XML字符串更改活动的布局

duong_dajgja

我有向用户显示的活动。在活动中,我有一个按钮。每次用户按下按钮时,应用程序都会从​​远程服务器加载xml文件。xml文件实际上是为应用程序设计的布局。在新的xml文件加载并存储在newLayout变量中之后,我想设置xml文件以替换显示给用户的当前布局。

String newLayoutStr = "";
onClickButton() {
    newLayoutStr = loadNewLayoutFromRemoteServer();
}

// set the layout contained in newLayoutStr as new layout of the current activity

任何意见?

安卓

您的要求将无法实现。Android使用自动生成的类调用R依赖资源标识符。该文件包含public static final int您的应用程序中各种类值的引用。此处引用的类可在http://developer.android.com/reference/android/R.html中找到

此类用于引用应用程序中的各种资源,其中之一是layout因此,系统希望xml中定义的所有布局都包含在此生成的R类中。

因此,只需一句话:您将无法以所需的方式完成此操作。

我要做的是有一个json响应并将其转换为动态生成的布局。

对于XML,请下载test.xml

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_height="match_parent"
      android:layout_width="match_parent">

      <TextView android:id="@+id/textViewTest"
           android:layout_centerInParent="true"
           android:gravity="center"
           android:layout_height="wrap_content"
           android:layout_width="match_parent"/>

  </RelativeLayout>

如果要在应用中创建此布局,请创建一个json响应:

{
"layout_parent":"RelativeLayout",
"layout_height": "match_parent",
"layout_width": "match_parent",
"layout_children": [
        {
            "layout_child":"TextView",
            "layout_child_id":"textViewTest",
            "layout_height":"wrap_content",
            "layout_width":"match_parent",
            "layout_gravity":"center",
            "layout_centerInParent":"true"
        }
    ]
}

然后,我将其解析为模型对象,并使用该模型对象动态构建您的布局。为了添加字段,尽管您需要具有一些在xml中定义的布局,才能在应用程序中添加更多字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时更改xml或布局

来自分类Dev

Dapper 在运行时更改连接字符串

来自分类Dev

在EF 6中在运行时更改连接字符串

来自分类Dev

如何在运行时在EF7 Core中更改连接字符串?

来自分类Dev

通过添加值更改字符串中的字符会导致运行时错误

来自分类Dev

创建仅包含字符串的JList的最简单方法(必须在运行时更改Jlist)

来自分类Dev

我可以在运行时通过评估字符串来创建函数吗?

来自分类Dev

我可以在运行时通过评估字符串来创建函数吗?

来自分类Dev

在运行时通过字符串从 python 访问模块和模块变量

来自分类Dev

如何在运行时更改NLog目标的连接字符串?

来自分类Dev

Azure Web服务-在运行时更改数据库连接字符串

来自分类Dev

实体框架-在运行时更改连接字符串(需要解释)

来自分类Dev

Castle和NLog在运行时更改连接字符串

来自分类Dev

在运行时更改连接字符串–这是正确的方法吗?

来自分类Dev

Castle和NLog在运行时更改连接字符串

来自分类Dev

C#在运行时更改自定义连接字符串

来自分类Dev

EF6在运行时更改连接字符串

来自分类Dev

在运行时使用连接字符串

来自分类Dev

PyQt:在运行时转换模块字符串

来自分类Dev

尝试在运行时编辑字符串

来自分类Dev

字符串替换在运行时在Powershell脚本中不起作用

来自分类Dev

在运行时确定字符串中Java表达式的返回类型

来自分类Dev

如何在运行时在Objective-C中查找字符串常量?

来自分类Dev

如何在运行时将java中的字符串参数作为参数传递

来自分类Dev

在Swift中可以在运行时从字符串执行代码吗?

来自分类Dev

是否可以在运行时为C中的字符串分配正确的空间量?

来自分类Dev

如何在运行时将java中的字符串参数作为参数传递

来自分类Dev

`symbolVal` 中的错误类型在运行时获取类型级字符串

来自分类Dev

#ifdef内部的代码包含在运行时中还是在编译本身中?

Related 相关文章

  1. 1

    在运行时更改xml或布局

  2. 2

    Dapper 在运行时更改连接字符串

  3. 3

    在EF 6中在运行时更改连接字符串

  4. 4

    如何在运行时在EF7 Core中更改连接字符串?

  5. 5

    通过添加值更改字符串中的字符会导致运行时错误

  6. 6

    创建仅包含字符串的JList的最简单方法(必须在运行时更改Jlist)

  7. 7

    我可以在运行时通过评估字符串来创建函数吗?

  8. 8

    我可以在运行时通过评估字符串来创建函数吗?

  9. 9

    在运行时通过字符串从 python 访问模块和模块变量

  10. 10

    如何在运行时更改NLog目标的连接字符串?

  11. 11

    Azure Web服务-在运行时更改数据库连接字符串

  12. 12

    实体框架-在运行时更改连接字符串(需要解释)

  13. 13

    Castle和NLog在运行时更改连接字符串

  14. 14

    在运行时更改连接字符串–这是正确的方法吗?

  15. 15

    Castle和NLog在运行时更改连接字符串

  16. 16

    C#在运行时更改自定义连接字符串

  17. 17

    EF6在运行时更改连接字符串

  18. 18

    在运行时使用连接字符串

  19. 19

    PyQt:在运行时转换模块字符串

  20. 20

    尝试在运行时编辑字符串

  21. 21

    字符串替换在运行时在Powershell脚本中不起作用

  22. 22

    在运行时确定字符串中Java表达式的返回类型

  23. 23

    如何在运行时在Objective-C中查找字符串常量?

  24. 24

    如何在运行时将java中的字符串参数作为参数传递

  25. 25

    在Swift中可以在运行时从字符串执行代码吗?

  26. 26

    是否可以在运行时为C中的字符串分配正确的空间量?

  27. 27

    如何在运行时将java中的字符串参数作为参数传递

  28. 28

    `symbolVal` 中的错误类型在运行时获取类型级字符串

  29. 29

    #ifdef内部的代码包含在运行时中还是在编译本身中?

热门标签

归档