【问题标题】:Is it possible to render a dynamic layout on Android which received via API?是否可以在通过 API 接收的 Android 上呈现动态布局?
【发布时间】:2015-08-30 20:48:26
【问题描述】:

我想在我的应用程序中动态添加由 API 接收的 UI 组件。我还想在提交时获取该组件的值。例如如果有 3 个复选框、2 个 Edittext 和 2 个单选按钮,我需要在单击提交时获取每个组件的值。

【问题讨论】:

  • 您能否说明接收这些组件的格式? API 是否返回 XML 字符串?
  • API 返回带有组件类型的 json 字符串,它是 que。
  • 你能在你的问题中举一个 JSON 的例子吗?您可以控制 API 生成的内容还是第三方?
  • 我想要做的是如果 type= edittext 然后添加 edittext 视图,如果 type= radio 然后,添加电台组。

标签: android android-layout dynamic-view


【解决方案1】:

Android 的 UI 小部件(如 EditTextRadioGroup)是 Java 类。欢迎您使用它们的构造函数创建这些实例。欢迎您使用 setter 配置它们。欢迎您通过在容器上调用 addView() 将它们添加到父容器。以此类推。

【讨论】:

    【解决方案2】:

    Android 内置了 JSON 解析器,因此解析 JSON 非常简单。

    既然你知道格式,只需发起JSONObjectJSONArray(取决于你需要什么)

    JSONObject obj = new JSONObject(jsonString)
    

    然后您可以使用方法调用来探索对象(请参阅上面的文档)

    解析 JSON 后,只需创建每个 UI 组件的相应实例并添加到视图中即可。

    Button btn = new Button();
    someView.addView(btn);
    

    您还可以通过编程方式为组件赋予属性。查看文档以了解哪些方法对应于哪些 XML 属性。

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      相关资源
      最近更新 更多