Мне нужно создать представление без XML. Я получаю идентификатор вида методом getID
вида, но получаю ResourceNotFoundException
. Я попытался использовать этот идентификатор для метода setID
, но он больше не работает.Android-просмотр без xml
ответ
Если вы не объявили ваш взгляд и поставить идентификатор на него в макете файл XML, вы не можете получить его с
findViewById(int)
Если вы создаете ваш взгляд без XML, вы должны управлять без идентификатора ресурса. Вы просто создаете представление и называете его, а затем используете имя для работы с ним.
Вы всегда можете передать ссылку на другие классы или сделать доступными через класс, который его создал.
Вы все же хотите НЕ объявить его в XML? Обычно, когда вы запускаете проект, вы не можете видеть, как вы можете что-то сделать с компоновкой XML, и выберите программное представление большинства представлений. После того, как вы продвигаетесь вперед по проекту или собираете больше опыта, почти во всех случаях вы видите, что могли бы сделать это с помощью XML.
К сожалению, я не могу использовать XML-макет ... причины ... Моя проблема заключается в том, что я хочу использовать ListView, заполненный с помощью ArrayAdapater, и для конструктора ArrayAdapter нужен идентификатор вида! – Arutha
Ну, в этом случае используйте метод setId (int) класса View. –
Это то, что я сделал, но я получаю ResourceNotFoundException во время выполнения – Arutha
Если вы попытаетесь напечатать getId(int)
вида, вы получаете действительный идентификатор?
Попробуйте использовать findViewById(int)
в правильном контексте, например. yourContext.findViewById(int);
да, я получаю id, указанный мной в методе setID, но findViewByID возвращает исключение (ResourceNotFound) – Arutha
Попробуйте использовать yourActivity.findViewById (int); или yourActivity.getBaseContext(). findViewById, чтобы найти представление. Если это не сработает, я думаю, вам нужно сделать ссылку на созданный View где-нибудь, чтобы вы сразу увидели представление – Thys
Я думаю, что проблема следующая. Когда вы вызываете findViewById()
, он ищет этот вид в дереве отображения. Таким образом, чтобы получить представление из дерева, вы должны были добавить свой вид к дереву с помощью функции addView(). Если вы этого не сделали, возможно, он не сможет найти представление в дереве.
это легко.
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);
- 1. FOR XML без FROM
- 2. ImageView без определения xml
- 3. spring oauth2 без xml
- 4. Android onClickListener без XML
- 5. XML-выбор без вложенности
- 6. Создайте WebView без xml
- 7. Сохранение xml-файла без
- 8. Создание макетов без XML
- 9. XML сериализации без подэлемента
- 10. Анимация фрагмента без xml
- 11. создать XML без имен
- 12. HTMLPurifier без объявления XML
- 13. unmarshal xml без схемы
- 14. XML-массив без XDocument
- 15. XML-сериализация без перезаписи
- 16. Анализировать XML без тэгу
- 17. XML-сериализация без csc.exe
- 18. Android AdMob без XML
- 19. textview clickable без xml
- 20. SQLXML без кодирования XML?
- 21. Xml Сериализация без утилизации
- 22. Итеративный анализ без XML?
- 23. Весенний проект без xml
- 24. Конфигурация HiddenHttpMethodFilter без xml
- 25. Infinispan DefaultCacheManager без xml
- 26. Представить XML без xsd
- 27. Возврат JSon без XML
- 28. XML атрибуты без пробелов
- 29. Невозможно разобрать xml без расширения .xml
- 30. конвертирование без моркови xml на морковь xml
Просьба уточнить, вставить код, объясните, что идентификатор вы говорите ... –
Полностью согласен, позволяет увидеть код, а затем мы можем помочь. –