Вид Android без xml - PullRequest
       19

Вид Android без xml

2 голосов
/ 10 сентября 2009

Мне нужно создать представление без XML. Я получаю идентификатор вида методом getID вида, но получаю ResourceNotFoundException. Я попытался использовать для исправления этого идентификатора метод setID, но он больше не работает.

Ответы [ 4 ]

1 голос
/ 17 сентября 2010

Я думаю, что проблема заключается в следующем. Когда вы звоните findViewById(), он ищет это представление в дереве дисплея. Таким образом, чтобы получить представление из дерева, вы должны уже добавить свой вид в дерево с помощью функции addView (). Если вы этого не сделали, возможно, вам не удастся найти представление в дереве.

1 голос
/ 11 сентября 2009

Если вы не объявили свое представление и не указали идентификатор в XML-файле макета, вы не сможете получить его с помощью

findViewById(int)

Если вы создаете свое представление без XML, вы должны управлять им без идентификатора ресурса. Вы просто создаете вид и называете его, а затем используете имя для работы с ним.

Вы всегда можете передать ссылку на него другим классам или сделать его доступным через класс, который его создал.

Тем не менее, вы не хотите объявлять это в XML? Обычно, когда вы запускаете проект, вы не видите, как можно что-то сделать с XML-макетом, и предпочитаете создавать большинство представлений программным способом. После того, как вы продолжите работу над проектом или приобретете больше опыта, почти во всех случаях вы увидите, что могли бы сделать это с помощью XML.

0 голосов
/ 14 декабря 2011

это легко.

lv = new ListView(this); lv.setId(android.R.layout.simple_list_item_1);

SimpleCursorAdapter ca = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, from, to);

0 голосов
/ 17 сентября 2009

Если вы пытаетесь распечатать getId(int) представления, вы получаете действительный идентификатор?

Попробуйте использовать findViewById(int) в правильном контексте, например. yourContext.findViewById(int);

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