Я использую Android Studio 3.6-RC1 и создать инструменты версии 3.6.0-RC01 и столкнулся с проблемой с функцией подключения просмотра: < /p>
У меня есть файл Activity_test.xml со следующей разметкой: < /p>
< /code>
и merge_view.xml с следующей разметкой: < /p>
< /code>
Код активности выглядит как следующее: < /p>
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityTestBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.viewMerged.label.text = "New text"
}
}
< /code>
Проблема заключается в том, что когда я пытаюсь получить доступ к TextView из объединенного макета, приложение бросает исключение с сообщением java.lang.nullPointerException: отсутствует необходимый вид с ID: ViewMerged. < /code> < /p>
Сгенерированный класс связывания выглядит как следующее: < /p>
Сгенерированный класс связывания.public final class ActivityTestBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final MergeViewBinding viewMerged;
private ActivityTestBinding(@NonNull LinearLayout rootView,
@NonNull MergeViewBinding viewMerged) {
this.rootView = rootView;
this.viewMerged = viewMerged;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityTestBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityTestBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_test, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityTestBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
String missingId;
missingId: {
View viewMerged = rootView.findViewById(R.id.view_merged);
if (viewMerged == null) {
missingId = "viewMerged";
break missingId;
}
MergeViewBinding viewMergedBinding = MergeViewBinding.bind(viewMerged);
return new ActivityTestBinding((LinearLayout) rootView, viewMergedBinding);
}
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}
< /code>
Я что-то упускаю, или нет возможности получить доступ к представлениям из включенных макетов с тегами, или он еще не поставляется в Android Studio 3.6-RC1? < /p>
Подробнее здесь: https://stackoverflow.com/questions/597 ... -another-l
Как я могу получить доступ к представлениям из макета, содержащего тег слияния, включен в другой макет? ⇐ Android
Форум для тех, кто программирует под Android
1748863156
Anonymous
Я использую Android Studio 3.6-RC1 и создать инструменты версии 3.6.0-RC01 и столкнулся с проблемой с функцией подключения просмотра: < /p>
У меня есть файл Activity_test.xml со следующей разметкой: < /p>
< /code>
и merge_view.xml с следующей разметкой: < /p>
< /code>
Код активности выглядит как следующее: < /p>
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityTestBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.viewMerged.label.text = "New text"
}
}
< /code>
Проблема заключается в том, что когда я пытаюсь получить доступ к TextView из объединенного макета, приложение бросает исключение с сообщением java.lang.nullPointerException: отсутствует необходимый вид с ID: ViewMerged. < /code> < /p>
Сгенерированный класс связывания выглядит как следующее: < /p>
Сгенерированный класс связывания.public final class ActivityTestBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final MergeViewBinding viewMerged;
private ActivityTestBinding(@NonNull LinearLayout rootView,
@NonNull MergeViewBinding viewMerged) {
this.rootView = rootView;
this.viewMerged = viewMerged;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityTestBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityTestBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_test, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityTestBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
String missingId;
missingId: {
View viewMerged = rootView.findViewById(R.id.view_merged);
if (viewMerged == null) {
missingId = "viewMerged";
break missingId;
}
MergeViewBinding viewMergedBinding = MergeViewBinding.bind(viewMerged);
return new ActivityTestBinding((LinearLayout) rootView, viewMergedBinding);
}
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}
< /code>
Я что-то упускаю, или нет возможности получить доступ к представлениям из включенных макетов с тегами, или он еще не поставляется в Android Studio 3.6-RC1? < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/59753930/how-can-i-access-views-from-layout-containing-merge-tag-is-included-in-another-l[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия