Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.91/91: Рейтинг темы: голосов - 91, средняя оценка - 4.91
antel
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
1

Динамическое создание кнопки

07.08.2012, 17:59. Просмотров 16640. Ответов 26
Метки нет (Все метки)

Добрый день, подскажите пожалуйста как программно можно создать кнопку или картинку и отобразить их на экране?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2012, 17:59
Ответы с готовыми решениями:

Динамическое создание кнопки
Добрый день, искал и перебровывал много способов, но не один не помог( Нужно создать 2 колонки (6...

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

Динамическое создание ImageButton
В строках TableRow динамически создаю кнопки: TableRow tableRow = new TableRow(this); ......

Динамическое создание интерфейса
Здравствуйте уважаемые. Помогите справиться с задачей. Хочу динамически создать несколько...

Динамическое создание View
Есть шаблон: <?xml version="1.0" encoding="utf-8"?> <LinearLayout...

26
V0v1k
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.08.2012, 20:39 2
http://developer.android.com/intl/ru/training/index.html
0
antel
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
07.08.2012, 20:48  [ТС] 3
Эм что-то я там не могу найти такого)
Для уточнения мне нужно создать определённое количество кнопок, например их колличество введёт пользователь.
0
V0v1k
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.08.2012, 21:37 4
а вы уже весь тренинг прошли?
Java
1
2
3
for(int i = 0; i < kilk; i++){
           layaut.addView(new Button());
}
Добавлено через 2 минуты
setLayoutParams не забудьте.

Добавлено через 27 минут
Java
1
2
3
4
5
6
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
for(int i = 0; i < kilk; i++){
           Button button = new Button(context);
           button.setLayoutParams(layoutParams);
           layout.addView(button);
}
0
07.08.2012, 21:37
KODAGEN
3 / 1 / 1
Регистрация: 22.11.2009
Сообщений: 87
01.11.2012, 23:04 5
V0v1k, если вы хотите построить из себя умного, то вам не сюда
0
YuraAAA
1581 / 1321 / 283
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
02.11.2012, 12:02 6
Только не забывайте, при таком создании кнопок, вы не сможете отловить нажатие. Так что не забывайте явно указывать им id.
Java
1
 button.setId(id++);
1
V0v1k
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.11.2012, 13:14 7
сможете.
0
YuraAAA
1581 / 1321 / 283
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
02.11.2012, 14:02 8
V0v1k, уверен? А ну, проверь. У тебя все id будут -1
0
V0v1k
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.11.2012, 14:39 9
да хоть -2)

Добавлено через 1 минуту
во первых, можно лысенер прилепить в момент создания кнопки, во вторых, найти view можно не только по id.
1
java_class
0 / 1 / 0
Регистрация: 12.01.2016
Сообщений: 17
07.02.2016, 19:56 10
V0v1k согласен на 100 процентов и поддерживаю
0
asffix
0 / 0 / 0
Регистрация: 05.10.2015
Сообщений: 28
07.02.2016, 20:33 11
Народ, а как мне присвоить кнопке обработчик програмно? вот я програмно создаю кнопки, делаю для них layoutparams, но не пойму, как для кнопок сделать обработчик. может есть какой-нибудь setOnClick(View view) ну или что-то в этом роде?
0
YuraAAA
1581 / 1321 / 283
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
07.02.2016, 20:36 12
asffix, button.setOnClickListener(new View.OnClickListener()

java_class, мёртвая тема как бы
2
java_class
0 / 1 / 0
Регистрация: 12.01.2016
Сообщений: 17
11.02.2016, 11:19 13
Кто нибудь подскажет
Я создал xml кнопку и хочу добавить через getresources().getlayout(R.layout.my_button),
Но приложение выдаёт ошибку
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
11.02.2016, 11:29 14
java_class, вы чего-то не то написали. Какой layout, если это id?
Если вы динамически создаёте кнопки, то можно либо генерировать их id (где-то есть статьи), либо обращаться через ссылки, а также через разметку (getChildAt).
0
java_class
0 / 1 / 0
Регистрация: 12.01.2016
Сообщений: 17
11.02.2016, 12:11 15
CoolMind, вы не так поняли, это уже другая тема, я на xml написал кнопку в папке res/layout и хочу добавить ещё в linearlayout
Java
1
2
3
my = (Button) getResources().getLayout(R.layout.my_button);
        mylin = (LinearLayout) findViewById(R.id.myLin);
mylin.addview(my);
А xml кнопки ниже
my_button.xml
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<Button
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="my"
    android:background="@drawable/my">
 
</Button>
1
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,735
11.02.2016, 12:31 16
java_class, и что за ошибка?
У меня была похожая ситуация, там, правда, компонент вставлен был внутрь LinearLayout (для больших настроек).
Соответственно, было так:
LinearLayout cell = (LinearLayout) inflater.inflate(R.layout.item_table_cell, row, false);
Затем обращение к TextView внутри LinearLayout:
TextView textView = (TextView) cell.findViewById(R.id.letter);
Наконец, добавление компонента:
row.addView(cell);
0
java_class
0 / 1 / 0
Регистрация: 12.01.2016
Сообщений: 17
11.02.2016, 13:04 17
У Меня в линер ещё не добавлено ничего, а пробую добавить кнопку который нарисовал в xml и пишу код getresources().getlayout(R.layout.my_button) а ошибка именно в этой строке

Добавлено через 1 минуту
CoolMind

my = (Button) getResources().getLayout(R.layout.my_button);
Или это строка неправильна?
0
Pablito
2856 / 2270 / 766
Регистрация: 12.05.2014
Сообщений: 7,967
Завершенные тесты: 1
11.02.2016, 13:08 18
Java
1
Button btn = (Button) View.inflate(this, R.layout.my_nutton, null);
Добавлено через 26 секунд
this - это контекст, например акивити
0
java_class
0 / 1 / 0
Регистрация: 12.01.2016
Сообщений: 17
11.02.2016, 13:21 19
Паблито, спасибо большое, но как пользоваться с getResources()?
0
Pablito
2856 / 2270 / 766
Регистрация: 12.05.2014
Сообщений: 7,967
Завершенные тесты: 1
11.02.2016, 13:25 20
вопрос нечеткий, в каком смысле пользоваться?
что конкретно нужно сделать?
0
11.02.2016, 13:25
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2016, 13:25

Динамическое создание объекта
Всем привет! Заранее извиняюсь за глупый вопрос. Подскажите, пожалуйста, кто знает, как можно...

Динамическое создание кастомного layout
Всем здрасте. Столкнулся с такой проблемой. Стоит задача по нажатию на динамически созданный едит...

Динамическое создание элементов интерфейса
Здравствуйте. Мне интересно знать, как динамически создавать элементы интерфейса. Например, в...


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

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

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