Получение инкрементного идентификатора макета программно - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть набор текстовых представлений, подобных этому ..

TextView d1,d2,d3,d4,d5,d6,d7,d8.....etc

Как я могу установить текст в цикле, как это, увеличивая число после d, как это

for(int i=1;i<=8;++i)
 {
      d+i.setText("foo");

  }

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

При этом:

for(int i = 1; i <= 8; i++) {
    int id = getResources().getIdentifier("d" + i, "id", getPackageName());
    TextView tv = (TextView) findViewById(id);
    tv.setText("foo");
  }

метод getIdentifier() получает целочисленный идентификатор View по его идентификатору "имя".Если этот код не находится внутри действия, вы должны предоставить действительные Context для методов getResources() и getPackageName(), например:context.getResources() и context.getPackageName().

0 голосов
/ 26 декабря 2018

Вы можете сделать, как показано ниже.

Создать ArrayList<TextView> и добавить все TextView в список.

Затем, после того, как вам нужно сделать цикл с List size.

, и вы можете обновить текст до TextView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...