Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Benderbej
1 / 1 / 0
Регистрация: 05.06.2013
Сообщений: 26
#1

Ссылка на текущий лейаут внутри активити? - Программирование Android

19.01.2016, 20:00. Просмотров 290. Ответов 2
Метки нет (Все метки)

Как начинающему android-программисту, мне часто приходится "заимствовать решения" в интернете, на stackoverflow, например... Пытаясь собрать разные решения из разных источников в единое целое, порой возникают вопросы, которые просто так, учись я по книжке, у меня не возникли бы.
Итак...

Вопрос, наверное нубский. но все же. Как я понял, создавая активити, мы можем применять два похода для создания внутри него элементов view.
1) Мы можем прописать нашу вьюшку в структуре лейаут-файла этой активити, а затем "подцепить" эту вьюшку по id внутри кода активити с помощью функции findById()
2) Мы можем создать лейаут целиком программно, расширив какой-нибудь, к примеру LinearLayout класс ... а затем создать, программно вьюшки и с помощью addView() добавить их в данный лейаут в коде активити, либо в самом нашем классе лейаута....

Вопрос.
А можно ли, не указывая в файле XML-лейаута вьюшки, создавать ее в активити программно(
Java
1
GridView gv = new GridView(this);
) и привязывать ее к лэйауту? И как тогда получить ссылку, на этот текущий лейаут? На внутренние, дочерние лейауты?
Пробовал
Java
1
R.layout.activity_main.addView(?????)
, но подсветка кода говорит мне что я не прав=))
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2016, 20:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ссылка на текущий лейаут внутри активити? (Программирование Android):

Ссылка из textView на другую активити - Программирование Android
Добрый день, Есть textView в которое выводится различная текстовая информация из базы данных. Иногда внутри текста идет что-то вроде:...

Активный фрагмент внутри активити - Программирование Android
Всем привет. Есть активити с content_frame, есть фрагмент. В Activity фрагмента gridView При старте фрагмента приложение вылетает с...

Как отобразить ViewPager внутри другой активити - Программирование Android
Подскажите пожалуйста. Изучил данный урок. И хочу сделать такую прокрутку страниц внутри класса, который наследуются от активити, а не от...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

Отображение активити поверх другого активити - Программирование Android
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по нажатию кнопки настройки, нужно открыть активити с настройками,...

2
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,065
Завершенные тесты: 1
19.01.2016, 20:30 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
внутри активити метод setContentView(R.layout.my_layout) устанавливает какую разметку использовать для активити, это я так понимаю ясно

теперь как добавить, например, View (мы где-то внутри активти, например onCretate())
Java
1
2
3
4
        View v = new View(this);
        v.setBackgroundResource(R.color.colorAccent); // задать свой цвет, для примера
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(200, 100);
        addContentView(v, params);
или можно своему основному, корневому лаяуту в разметке активти задать id, допустим
XML
1
android:id="@+id/rootLayout"
тогда код будет такой
Java
1
2
3
4
5
        CoordinatorLayout layout = (CoordinatorLayout) findViewById(R.id.rootLayout);
        View v = new View(this);
        v.setBackgroundResource(R.color.colorAccent);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(200, 100);
        layout.addView(v, params);
у меня основной лаяут - CoordinatorLayout

От себя добавлю - знать как программно добавлять вьюшки и лайуты конечно полезно, но вообще принято все что возможно - выносить в ресурсы. Все в xml.
Сначала это непривычно, но все втягиваются и потом проникаются.
0
Benderbej
1 / 1 / 0
Регистрация: 05.06.2013
Сообщений: 26
19.01.2016, 20:56  [ТС] #3
Большое спасибо! Буду пробовать... Хочется для начала хоть примерно прощупать, что можно, что нельзя.. И, конечно же, как принято(потому что, зачастую, "принято" - не просто так. С этой точки зрения, буду стараться все структуры где возможно выводить в xml... Ну и как я понял этот инструмент(лейауты) отлично подходит под адаптацию под разные устройства... Наверное и при усложнении приложений, такая шаблонизация полезна...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2016, 20:56
Привет! Вот еще темы с ответами:

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...

Вызов новой активити не из класса активити - Программирование Android
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...

Окраска строк относительно текущий даты (Excel, подробнее внутри) - MS Excel
Всем привет! Имеется, например, таблица: ФИО|Телефон|Дата звонка Прякин А. В. |88005553535|13.12.2015 Физиков А. Л....

ссылка внутри таблицы - HTML, CSS
добрый день, может кто сталкивался с такой задачей - есть таблица с N количеством столбцов и строк, ширина и высота заранее не известна. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.