【问题标题】:Creating screens and underlying data access layer dynamically on Android在 Android 上动态创建屏幕和底层数据访问层
【发布时间】:2011-07-24 14:08:02
【问题描述】:

我希望允许用户通过在运行时从现有的一组字段中进行选择来动态创建“自定义屏幕”,也就是说,所有事情都应该在手机上的 App 上完成。

例如 - 现有字段集 = {name, location, picture, age}

用户 A 想要创建一个包含字段名称、位置和年龄的新屏幕。

并且用户 B 想要一个只有名称和图片的屏幕。

这些屏幕应该是持久的,并且应该能够在手机的本地数据库中保存、查询和编辑信息。

任何有关如何在 Android 中实现此目的的帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: android dynamic views data-access-layer


    【解决方案1】:

    您将希望在 Java 中动态创建这些视图(不使用布局)。我会将某种 XML 模式放在一起,然后将其保存在数据库或设备中。然后您可以执行以下操作:

    //pseudo-code
    while (xmlDoc isn't empty) {
    View v = null;
    if (XML says to create a text view) {
        v = new TextView(this);
        ...
    }
    else if (XML says to create an ImageView) {
        v = new ImageView(this);
        ...
    }
    add v to the LinearLayout or whatever type of root view will be passed to setContentView().
    

    【讨论】:

    • 这是一个合理的方法。但是,我仍然不清楚将这些视图附加到数据库表的最佳方式是什么,以便用户可以在下次使用他们的应用程序时为他们自定义创建的屏幕取回数据。
    • 您可以将整个 XML 存储在数据库 xml 列中并检索它吗?一旦你想出了一个 XML 模式,应该很好吧?
    • 是的,我可以将 XML 存储在数据库(或文件系统)中。但是,我仍然需要一些代码来访问将在这些屏幕上显示的实际数据。在上面的示例中,我需要一个数据访问层来访问姓名、位置、图片、年龄等。
    【解决方案2】:

    创建一个PreferenceScreen 并添加一些带有字段名称的布尔首选项。因此,每个用户都可以配置在您的数据活动中显示哪些字段。

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2011-02-16
      • 2019-07-31
      • 2010-11-19
      • 2012-06-08
      • 2015-11-14
      相关资源
      最近更新 更多