Как перезвонить динамически созданному элементу в java? - PullRequest
0 голосов
/ 30 апреля 2020

Например, у меня есть этот код, который собирается создать 10 динамических c объектов. Тогда как я могу их отозвать (например, получить их значения, установить их значения и т. Д. c ..)

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
}

Итак, после их создания, как я могу получить их значения, которые будут числами, которые я хочу добавить их друг другу ... или сделать что-то еще.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Да, самый простой способ - хранить их внутри Коллекции. Другой способ - вызвать layout.getChildAt(position) внутри l oop, но тогда вы получите все виды, хранящиеся в этом Layout, поэтому вам нужно проверить, какой это вид:

for (int position = 0; position < layout.getChildCount(); position++) {
    if (layout.getChildAt(position) instanceof EditText) {
        // some action
    }
}
0 голосов
/ 30 апреля 2020

Вы должны хранить их в чем-то. В вашем случае я хотел бы использовать массив.

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 l oop начните i с 0, будет лучше для управления памятью

...