以编程方式创建持久的 android 视图

Posted

技术标签:

【中文标题】以编程方式创建持久的 android 视图【英文标题】:Creating persistent android views programmatically 【发布时间】:2012-02-16 16:29:58 【问题描述】:

我有一个应用程序,它可以读取一些格式化数据 XML/JSON 并从中构建视图和侦听器。目前我在onCreate 中执行此操作,但我不希望每次打开应用程序时都会发生这种情况,我宁愿仅在首次启动时执行此操作,并且 UI 仍然存在,或者更好的是在编译/构建时以某种方式执行此操作来自 Eclipse 的应用程序。

【问题讨论】:

我不清楚您所说的观点和听众是什么意思。这本质上是在做代码生成吗? 您可以将所有 UI 信息转储到一个私有文件中并在 onCreate() 中“重建”它 【参考方案1】:

有一些方法可以做到这一点。您可以尝试将数据保存到数据库并在应用程序打开时从该数据创建视图,并运行线程将新数据下载到数据库,完成下载后刷新视图。您还可以为用户提供更新数据的选项,以便他可以在需要时更新数据。

仅在编译时使用数据,这可能是个大问题。首先,您将无法随时刷新数据!这些数据将构成一个静态应用程序。如果您仍想继续前进,您可以在代码中硬编码或将数据写入 .txt 文件并在每次应用打开时从文件中读取!

【讨论】:

我最终做的是提前使用单独的 java 应用程序构建我的 layout/res/drawables xml,在第一次启动时,我将我的所有视图 int 表示为他们的 json 对象的应用程序范围哈希表并按活动拆分我的json并在活动运行时将事件添加到活动中,它是动态的,因为我正在跟踪应用程序范围哈希表中布局的更改到目前为止性能还可以,我知道这可能不是最好的方法但它对我有用。 好吧,最好的方法永远是最适合你的!无论如何都很乐意提供帮助。 :)

以上是关于以编程方式创建持久的 android 视图的主要内容,如果未能解决你的问题,请参考以下文章

多个ListViews在android中以编程方式创建

android - 获取以编程方式创建的视图的估计高度

Android 编程:如何以网格方式以编程方式创建各种视图类型

在android中以编程方式创建视图时如何传递AttributeSet

在 Android 中以编程方式创建的多个文本视图的单个 onclick 侦听器

如何以编程方式动态创建所有 Android ui 组件的列表?例如文本视图、图像视图等