Присвоить идентификатор и получить экземпляр TextView, используя объединенную строку - PullRequest
1 голос
/ 19 января 2012

Так что, если я динамически создаю текстовые представления в цикле foreach и хочу назначить им идентификаторы на основе инкрементного целого числа, а затем смогу впоследствии извлечь экземпляр и текст текстового просмотра с использованием этого идентификатора, как бы я это сделал.Например:

int my = 0;

foreach (equip item in list)
{
  TableRow tr = new TableRow(this);

  tv = new TextView(this);
  tv.Text = "Test";
  tv.Id = "Date" + my; //I want to make the ID the word Date + the current value of my
  tr.AddView(tv);
  tl.AddView(tr);
  my++;
}

А затем получить экземпляр этого текстового представления

 TextView tv = (TextView)"Date" + my;

Приведенные выше результаты приводят к «Невозможно преобразовать строку типа в int» в строке, где я назначаю tvID и «Оператор + нельзя применить к операндам типа Android.Widget.Textview и int».

Ответы [ 2 ]

1 голос
/ 19 января 2012

Это на самом деле не предполагаемое использование идентификаторов представлений, которые должны быть положительными целыми числами. В этом случае вам нужно будет установить идентификатор просто в число, а не добавлять его к «Дата».

Другим вариантом является использование тегов. Вы могли бы сделать что-то вроде этого:

var textView = new TextView(this);
textView.Tag = "TagName";

Затем вы можете искать представления по их тегу, предполагая, что у вас есть ссылка на представление, содержащее искомое представление (в этом случае ваш TableLayout будет работать):

containingView.FindViewWithTag("TagName");
0 голосов
/ 19 января 2012

ID для любого элемента android должен быть int, и вы можете выполнить поиск элемента, используя findViewByID (...).Вам нужно использовать альтернативу, такую ​​как View Tag.

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