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

Динамическое создание кнопок на Mono Android - Программирование Android

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

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

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

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

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

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

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

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

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

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

8
Bes-s
31 / 31 / 2
Регистрация: 05.11.2011
Сообщений: 178
23.04.2012, 12:00 #2
создавать кнопки с размером WRAP_CONTENT а не FILL_PARENT.
координаты можно задать, если размещать кнопки в absolute layout.
или в любом другом layout вписать margin(отступ) какой нам требуется.
0
AlexFurious
0 / 0 / 1
Регистрация: 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 / 2
Регистрация: 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 / 1
Регистрация: 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 / 1
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

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

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


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

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

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