0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 10
1

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

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

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

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

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

Так же интересует вопрос: как указать начальные координаты Х и У для кнопки?
Миниатюры
Динамическое создание кнопок на Mono Android  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2012, 22:24
Ответы с готовыми решениями:

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

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

Динамическое создание кнопок
Панели присвоен слушатель мыши, по нажатию кнопки, должна добавляться кнопка, но она не...

Динамическое создание кнопок
Вот что мне надо осуществить. Имеется кнопка с лаконичным название "itbuttonnumber1mazafaka". При...

8
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
23.04.2012, 12:00 2
создавать кнопки с размером WRAP_CONTENT а не FILL_PARENT.
координаты можно задать, если размещать кнопки в absolute layout.
или в любом другом layout вписать margin(отступ) какой нам требуется.
0
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
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
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 10
24.04.2012, 13:51  [ТС] 5
Спасибо большое за помощь. Задание выполнено. Хочу немного украсить работу... Как изменить background в элементах, например, в кнопке? В шарпе с этим просто, но в моно такая фича не прокатила. Подскажите как это реализовать.
0
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
24.04.2012, 13:54 6
в разметке. android:background почитайте заодно про selector http://developer.android.com/g... ource.html
0
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
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
24.04.2012, 14:31 8
ну логично...если в коде надо
1
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
29.04.2012, 01:08 9
Цитата Сообщение от Bes-s Посмотреть сообщение
если размещать кнопки в absolute layout.
епрст, накой советовать юзать deprecated элемнеты?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2012, 01:08
Помогаю со студенческими работами здесь

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

Динамическое создание кнопок
TextBox tbI = new TextBox; Button btU = new Button; Int n=5; for (int i = 0; i &lt; n; i++) { ...

Динамическое создание кнопок.
Можно сделать так, чтобы при нажатии на одну кнопку создавалась (не появлялась) кнопка?

Динамическое создание кнопок
Как создать кнопку, я примерно представляю: TSpeedButton *lbl; lbl=new TSpeedButton(this);...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru