【问题标题】:How to call back a dynamically created element in java?如何在java中回调动态创建的元素?
【发布时间】:2020-04-30 09:28:38
【问题描述】:

例如我有这段代码将创建 10 个动态对象 那我怎么能把它们叫回来(例如,获取它们的值,设置它们的值等)

for (int i = 1; i <= 10; i++) {
    EditText test = new EditText(this);
    test.setHint("Your Input Here");
    // etc...
    Layout.addView(test);
    // A layout that I already made in XML file
}

因此,在创建它们之后,我怎样才能获得它们的值,这些值将是我想将它们相加的数字......或做其他事情。

【问题讨论】:

  • 将它们存储在某处(列表、数组等)
  • 将它们放入一个集合中,例如一个数组列表。

标签: java android android-studio for-loop return-value


【解决方案1】:

您需要将它们存储在某些东西中。 在你的情况下,我会使用一个数组。

EditText[] tab = new EditText[11];
for (int i = 1; i <= 10; i++) {
    EditText test = new EditText(this);
    test.setHint("Your Input Here");

    tab[i] = test
    Layout.addView(test);

}

然后访问它

tab[i]

PS : 对于你的for loop start i at 0,内存管理会更好

【讨论】:

    【解决方案2】:

    是的,最简单的方法是将它们存储在 Collection 中。另一种方法是在循环内调用layout.getChildAt(position),然后您将获得存储在此Layout 中的所有视图,因此您需要检查这是哪种视图:

    for (int position = 0; position < layout.getChildCount(); position++) {
        if (layout.getChildAt(position) instanceof EditText) {
            // some action
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多