【问题标题】: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
}
}