2012-01-19 3 views
1

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

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

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

Выполнение вышеуказанных результатов в «Не удается преобразовать строку типа в Int» в строке, где я назначу Tv идентификатор и «Оператор + не может применяться к операндам типа Android.Widget.Textview и int ".

ответ

1

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

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

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

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

containingView.FindViewWithTag("TagName"); 
0

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

 Смежные вопросы

  • Нет связанных вопросов^_^