Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
AlexFurious
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 10
#1

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

22.04.2012, 22:24. Просмотров 2225. Ответов 8
Метки нет (Все метки)

Доброго времени суток. Разработку под Андроид начал изучать совсем недавно. Выбрал следующую задачу:

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

На данный момент я умею создавать необходимое количество кнопок, но проблема в том, что кнопки растягиваются на весь экран... Как убрать исправить данную ошибку (рис. 1) я не знаю и посему прошу помощи.

Так же интересует вопрос: как указать начальные координаты Х и У для кнопки?
0
Миниатюры
Динамическое создание кнопок на Mono Android  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2012, 22:24
Ответы с готовыми решениями:

Динамическое создание кнопок в цикле (Android)
создаю кнопки по циклу void show(){ public LinearLayout show; ...

Динамическое создание кнопок и их кривая отрисовка
Всем доброго времени суток. Имеется такая процедура(хотя в данном случае...

Построение UI для Android приложения на C# Mono
Форумчане хочу написать приложение для android на c# mono, не подскажете есть...

Подключение нескольких кнопок в Android Studio
Помогите с подключение n-ого количества кнопок к n-ому количеству activity . На...

Создание кнопок
У меня в программе выпадает число рандомно от 1 до 10. Как мне автоматически...

8
Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
23.04.2012, 12:00 #2
создавать кнопки с размером WRAP_CONTENT а не FILL_PARENT.
координаты можно задать, если размещать кнопки в absolute layout.
или в любом другом layout вписать margin(отступ) какой нам требуется.
0
AlexFurious
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 10
23.04.2012, 21:09  [ТС] #3
Еще такой вопрос... нужно сделать вывод на экран сразу нескольких объектов с помощью SetContentView()? Пытался вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ViewGroup.LayoutParams layoutParams2 = new ViewGroup.LayoutParams(10, 20);
            DatePicker picker = new DatePicker(this);
            picker.LayoutParameters = layoutParams2;
 
            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(30, 40);
            Button bt = new Button(this);
            bt.LayoutParameters = layoutParams;
 
            View[] viewArr = new View[4];
            viewArr[1] = new Button(this);
            viewArr[0] = new DatePicker(this);
            for (int i = 0; i < 2; i++)
            {
                    SetContentView(viewArr[i]);
            }
ничего не получилось выводит только первый элемент массива.
0
Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
24.04.2012, 01:17 #4
ибо сначала надо создать Layout. а уже на нем создавать View. и вот этот самый Layout и пихать в setContentView.
вот вам пример создания view в компоненте:
Java
1
2
3
4
5
6
7
8
LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
        params.setMargins(5,5,5,5);
        TextView tvTemp=new TextView(this.getContext());
        tvTemp.setLayoutParams(params);
        tvTemp.setId(k); k++;
        this.addView(tvTemp);
вот только вместо this(контекст компоненты) надо вставить имя вашего Layout.
1
AlexFurious
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 10
24.04.2012, 13:51  [ТС] #5
Спасибо большое за помощь. Задание выполнено. Хочу немного украсить работу... Как изменить background в элементах, например, в кнопке? В шарпе с этим просто, но в моно такая фича не прокатила. Подскажите как это реализовать.
0
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
24.04.2012, 13:54 #6
в разметке. android:background почитайте заодно про selector http://developer.android.com/guide/t...-resource.html
0
AlexFurious
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 10
24.04.2012, 14:26  [ТС] #7
Цитата Сообщение от hellslade Посмотреть сообщение
в разметке. android:background почитайте заодно про selector
Не подходит, мы не ищем легких путей

Ответ оказался прост
C#
1
2
3
4
5
6
7
8
int colorRed = -65536,
                    colorGreen = -16711936;
if (i % 2 == 0)
{
    btns[i].SetBackgroundColor(colorGreen);
}
else
    btns[i].SetBackgroundColor(colorRed);
0
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
24.04.2012, 14:31 #8
ну логично...если в коде надо
1
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
29.04.2012, 01:08 #9
Цитата Сообщение от Bes-s Посмотреть сообщение
если размещать кнопки в absolute layout.
епрст, накой советовать юзать deprecated элемнеты?
0
29.04.2012, 01:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 01:08

Создаю новый проект и не могу добавить ничего ни кнопок ни текста, а hello world даже нет в Android Studio
Таким образом не могу ничего добавить, не отображается. При создании снова...

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

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


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

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

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