如何回调java中动态创建的元素?
How to call back a dynamically created element in java?
例如我有这段代码将创建 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
}
所以在创建它们之后我怎样才能得到它们的值,这些值将是我想将它们相加的数字......或者做其他事情。
您需要将它们存储在某个东西中。
在你的情况下,我会使用一个数组。
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
循环开始 i
在 0, 内存管理会更好
是的,最简单的方法是将它们存储在 Collection 中。另一种方法是在循环中调用 layout.getChildAt(position)
但是你会得到存储在这个 Layout
中的所有视图所以你需要通过以下方式检查这是什么类型的视图:
for (int position = 0; position < layout.getChildCount(); position++) {
if (layout.getChildAt(position) instanceof EditText) {
// some action
}
}
例如我有这段代码将创建 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
}
所以在创建它们之后我怎样才能得到它们的值,这些值将是我想将它们相加的数字......或者做其他事情。
您需要将它们存储在某个东西中。 在你的情况下,我会使用一个数组。
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
循环开始 i
在 0, 内存管理会更好
是的,最简单的方法是将它们存储在 Collection 中。另一种方法是在循环中调用 layout.getChildAt(position)
但是你会得到存储在这个 Layout
中的所有视图所以你需要通过以下方式检查这是什么类型的视图:
for (int position = 0; position < layout.getChildCount(); position++) {
if (layout.getChildAt(position) instanceof EditText) {
// some action
}
}