Как получить удостоверение личности в разных макетах

StackOverflow https://stackoverflow.com/questions/4211189

  •  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);

попробуй это. Надеюсь, это поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top