как получить идентификатор в другом макете - PullRequest
3 голосов
/ 18 ноября 2010

у меня id "@+id/call" в single_item.xml, когда я использую findVewById it (макет setcontextview(R.layout.main)). Сбой приложения. Как исправить ошибку

Ответы [ 4 ]

36 голосов
/ 19 ноября 2010

Если вы хотите получить доступ к представлению в другом макете (не к активному макету), вы можете накачать макет, который хотите использовать, и получить к нему доступ таким образом.

Пример:

View inflatedView = getLayoutInflater().inflate(R.layout.other_layout, null);
TextView text = (TextView) inflatedView.findViewById(R.id.text_view);
text.setText("Hello!");

Более подробную информацию о раздувных макетах можно найти здесь .

0 голосов
/ 23 августа 2018

Простой способ получить id из вида:

String id = getResources().getResourceEntryName(view.getId());
0 голосов
/ 21 октября 2017
View parent = (View)view.getParent();
??? = (???)parent.findViewById(R.id.call);

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

0 голосов
/ 19 ноября 2010

Вы пытаетесь найти представление (R.id.call), которое объявлено в R.layout.single_item в слое R.layout.main, поэтому я предполагаю, что оно вызывает исключение нулевого указателя.

Вы должны либо объявить свой элемент "@ + id / call" в файле main.xml, либо установить для контекстного представления значение R.layout.single_item

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...