Как получить удостоверение личности в разных макетах
-
25-09-2019 - |
Вопрос
у меня есть id "@+id/call"
в single_item.xml
когда я использую findVewById
это (макет setcontextview(R.layout.main)
). Приложение сбой. Как исправить ошибку
Решение
Вы пытаетесь найти вид (r.id.call), который объявлен в R.layout.single_Item в Layour r.layout.main, поэтому я думаю, это бросает исключение нулевого указателя.
Вы должны либо объявить свой элемент «@ + ID / Call» в файле Main.xml, либо устанавливаете представление контекста на r.layout.single_item
Другие советы
Если вы хотите получить доступ к представлению в другом макете (не активный макет), то вы можете надувать макет, который вы хотите использовать и получить доступ к ней таким образом.
Пример:
View inflatedView = getLayoutInflater().inflate(R.layout.other_layout, null);
TextView text = (TextView) inflatedView.findViewById(R.id.text_view);
text.setText("Hello!");
Дополнительные данные о раздувых макетах можно найти здесь.
Простой способ получить id
С точки зрения:
String id = getResources().getResourceEntryName(view.getId());
View parent = (View)view.getParent();
??? = (???)parent.findViewById(R.id.call);
попробуй это. Надеюсь, это поможет