У меня есть огромный макет для моей активности, который я установил с помощью setContentView()
. В этом макете у меня есть TableLayout
(с именем tableLayout
в моей деятельности), который я хочу заполнить. Строки этого TableLayout являются customViews в файле макета (давайте назовем этот файл tablerow_layout.xml
). Внутри этого макета у меня есть TextViews и ImageView. То, что я хочу сделать, это изменить содержимое TextView программно, когда я создаю строку. Это мой код:Как получить ссылку на представление из раздутого макета
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View newRow = layoutInflater.inflate(R.layout.tablerow_layout, null, false);
TextView name = (TextView) newRow. findViewById(R.id.tablerow_name);
name.setText("THIS LINE");
tableLayout.addView(newRow);
К сожалению, при попытке изменить содержимое TextView мое приложение падает. Я знаю, что я мог бы сделать это с помощью ListView, но обычно у меня есть небольшое количество строк, и накладные расходы на создание другого адаптера для ListView превалируют большими.
Как @ ρяσѕρей K предложил я также попытался newRow.findViewById (...) вместо findViewById (...) без каких-либо различий
Пробовал это раньше и не имеет значения. Переход к редактированию моего вопроса – Felix