【问题标题】:Android Make a copy of a TableRow (widget) into a new TableRow (widget)Android 将一个 TableRow(小部件)复制到一个新的 TableRow(小部件)中
【发布时间】:2012-06-02 12:59:55
【问题描述】:

我看到过针对 sqlite 和 C# 发布的类似问题。

但不适用于 java。如何将现有的 TableRow 复制到新的 TableRow 中?
我不想分享任何参考,我希望这两个小部件相同。
难道是java缺少这个基本的对象复制功能?
我认为 TableRows 是不可克隆的,因为当我尝试写 row.clone() 时 Eclipse 没有自动完成@

手动复制不是一种选择,因为 TableRow 有很多字段。

注意:标题中的“小部件”是为了使其更通用,以供将来搜索

【问题讨论】:

  • 你说的是 UI Designer 还是 JAVA 语言?在 UI 设计器中,一个单行对象是 n 行的占位符。在 Androids Java 中,您的行存储在哪里(数据库、数组、...)?根据您使用该副本/克隆的存储空间。抱歉,如果我误解了您的问题。
  • 为什么不从头开始创建 TableRow 实例?由于您首先创建了它,因此您的应用程序中必须有一些代码可以创建它。所以你可以再次调用该代码。
  • 我说的是您添加到 TableLayout 的 TableRow 小部件。没有数据库,只有 UI。我已经看到对于 sqlite 有一种简单的方法来复制行(它是一个数据库,不能复制记录将是灾难性的)。
  • @Codo Codo,我需要一个通用的方法来做,不能依赖我创建的特定行。
  • @ilomambo:但是为什么呢?你能解释一下原因吗?在所有操作系统和所有编程语言中,复制 UI 小部件总是很成问题,因为每个小部件都引用窗口、字体、图形缓冲区、屏幕、父小部件等。这与 SQL lite 中的数据行非常不同。

标签: android widget tablerow cloning copying


【解决方案1】:

tableRow 继承自 java.object 但是克隆不可见。这应该可以使用蛮力来实现。这里有几个选择。一种可能也是最难但最好的方法是在子类中实现可克隆接口。

另一种方法是遍历子元素并将它们深度复制到新的表格行。

不管怎样,我都不羡慕你面前的东西。

【讨论】:

  • 我想我可以递归层次结构,但工作的主体将是询问每个孩子它属于哪个实例。我将不得不询问可能出现的所有类型/类。 :::: 我真的很感兴趣为什么该语言没有提供这一点,因为它是面向对象的,而且我认为它是一个必要的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
相关资源
最近更新 更多