Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,641
Записей в блоге: 3
#1

Динамический создавать контролы - элементы - Программирование Android

15.05.2014, 15:12. Просмотров 782. Ответов 4
Метки нет (Все метки)

Ребята есть такой код для создании таблицы:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
void tableCreate(String ab, String bb,String gg, String jj) {
        
 
    //  for (int i = 1; i < 30; i++) {
            TableRow tbrow = new TableRow(this);
            TextView tv1 = new TextView(this);
//              String s1 = Integer.toString(i);
//              String s2 = Integer.toString(2);
//              String s3 = s1 + s2;
//              int id = Integer.parseInt(s3);
//              tv1.setId(id);
                tv1.setTextSize(20);
                //tv1.setTextColor(getResources().getColor(R.color.llTopColor));
                tv1.setBackgroundResource (R.drawable.border);
                tv1.setText(ab);
                
                LayoutParams Parametr = new LayoutParams(1000, LayoutParams.MATCH_PARENT);
                tv1.setLayoutParams(Parametr);
                
                //lastTxtParams.setMargins(0, 0, 0, -10);
                        tv1.setMaxLines(3); 
                        //.setGravity(Gravity.CENTER);
                tbrow.addView(tv1);
                
                TextView tv2 = new TextView(this);
                tv2.setTextSize(20);
                //tv2.setTextColor(getResources().getColor(R.color.llTopColor));
                tv2.setBackgroundResource (R.drawable.border);
                tv2.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
                //tv2.setGravity(Gravity.CENTER);
                tv2.setText(bb);
                //setBackgroundColor(getResources().getColor(R.color.ForestGreen));
                tbrow.addView(tv2);
                TextView tv3 = new TextView(this);
                tv3.setTextSize(20);
                //tv3.setTextColor(getResources().getColor(R.color.llTopColor));
                tv3.setText(gg);
                tv3.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
                //tv3.setGravity(Gravity.CENTER);
                tv3.setBackgroundResource (R.drawable.border);
                tbrow.addView(tv3);
                
                TextView tv4 = new TextView(this);
                tv4.setTextSize(20);
                //tv3.setTextColor(getResources().getColor(R.color.llTopColor));
                tv4.setText(jj);
                tv4.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
                //tv4.setGravity(Gravity.CENTER);
                tv4.setBackgroundResource (R.drawable.border);
                tbrow.addView(tv4);
                //tbrow.setBackgroundResource (android.R.drawable.edit_text);
                
//          tbrow
                                
        
            tbllayout.addView(tbrow);
 
    //  }
 
        
 
    }


Как создать эти Textview в цикле

Добавлено через 1 час 0 минут
И еще одна проблема в том что я пытаюсь по типу изменять цвет фона

Java
1
2
3
4
5
6
7
    if (type=="1")
        {
        tbrow.setBackgroundColor(getResources().getColor(R.color.ForestGreen)); 
        }
        else {
        tbrow.setBackgroundColor(getResources().getColor(R.color.Red)); 
        }
Но цвет всегда последнего type
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 15:12     Динамический создавать контролы - элементы
Посмотрите здесь:
Контролы поверх Google-карты Android
Как правильно создавать объекты ? Android
Можно ли создавать диалоги без xml? Android
Android Какого размера нужно создавать иконку приложения?
Android Как создавать custom view компоненты с функционалом и присваивать им id?
Android Как в Android Studio создавать установочные apk файлы для наших гуглофонов?
C# Как создавать контролы ассинхронно?
Lazarus Как динамически создавать контролы на разных parent-ах?
C (СИ) Как создавать динамический массив строк
C++/CLI Как лучше создавать динамический массив
Можно ли в классе создавать массив переменной длинны. Например динамический массив? C++
Visual Basic Как программно создавать элементы?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Igor-vrn
7 / 7 / 2
Регистрация: 14.12.2013
Сообщений: 93
15.05.2014, 15:29     Динамический создавать контролы - элементы #2
Собственно в коде у вас все верно. Что с таблицей не так? Виджеты вы создаете верно, наделяете их параметрами и добавляете ступенчато TextView -> TableRow -> TableLayout.

Во втором случае. type это тип String? Не совсем верный подход, так как String - не простейший элемент, а самый что ни на есть объект. Менее проблемно будет сделать type типа int и делать его константами. Такой пример чаще всего делают так:

Java
1
2
3
4
5
public static final int TYPE_NUMBER_ONE = 1;
public static final int TYPE_NUMBER_TWO = 2;
 
if(type == TYPE_NUMBER_ONE) { }
else { }
или то же самое через switch . Но однозначно лучше не String. Точно не знаю, но если сравниваешь объекты, то лучше использовать метод equal (он присутствует у всех объектов, так как унаследован от самого дедушки - класса Object)
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,641
Записей в блоге: 3
15.05.2014, 15:49  [ТС]     Динамический создавать контролы - элементы #3
Igor-vrn, да, в коде все норм, и он работает, просто хотелось узнать возможно ли создать их в цикле ? т.е. не так явно tv1 tv2 tv3 ... а так чтобы в цикле создавать их

Добавлено через 10 минут
Цитата Сообщение от Igor-vrn Посмотреть сообщение
Во втором случае. type это тип String?
Помогло! Спасибо!
Igor-vrn
7 / 7 / 2
Регистрация: 14.12.2013
Сообщений: 93
15.05.2014, 16:49     Динамический создавать контролы - элементы #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от kaspersky Посмотреть сообщение
создать их в цикле ?
Можно, конечно. Вы наверное имеете ввиду - 1 такт цикла = один созданный TextView , верно? Тогда вам предстоит сделать два цикла. Вложенных. Внешний перебирает строки таблицы, а внутренний заполняет эту строку TextView-ми.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(int i=0; i<30; i++) { // 30 строк таблицы
    TableRow tbrow = new TableRow(this);
    for(int j=0; j<4; j++) { // 4 - кол-во TextView в строке. Можно любое
        TextView tv1 = new TextView(this);
        tv1.setTextSize(20);
        tv1.setBackgroundResource (R.drawable.border);
        tv1.setText(ab);
        LayoutParams Parametr = new LayoutParams(1000, LayoutParams.MATCH_PARENT);
        tv1.setLayoutParams(Parametr);
        tv1.setMaxLines(3); 
        //.setGravity(Gravity.CENTER);
        tbrow.addView(tv1);
        /* чтобы не потерять ссылки на TextView можно создать заранее массив или коллекцию
         и добавлять туда ссылки на каждый TextView попутно с созданием.
        */
    }
    tbllayout.addView(tbrow);
}
Как-то так. Набросал здесь без редактора
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,641
Записей в блоге: 3
15.05.2014, 19:04  [ТС]     Динамический создавать контролы - элементы #5
Igor-vrn, спасибо !
Yandex
Объявления
15.05.2014, 19:04     Динамический создавать контролы - элементы
Ответ Создать тему
Опции темы

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