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

Динамическое создание элементов со стилями

22.09.2014, 15:29. Просмотров 1471. Ответов 6
Метки нет (Все метки)

Существует набор стилей :
XML
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
<style name="once_items_yr">
        <item name="android:background">#fff</item>
        <item name="android:paddingBottom">1dp</item>
        <item name="android:paddingTop">1dp</item>
        <item name="android:paddingLeft">1dp</item>
        <item name="android:paddingRight">1dp</item>
        <item name="android:layout_marginRight">5dp</item>
        <item name="android:layout_marginLeft">5dp</item>
        <item name="android:layout_marginTop">2dp</item>
        <item name="android:layout_marginBottom">2dp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:orientation">horizontal</item>
        
    </style>
    <style name="namber_yrok">
        <item name="android:textSize">30dp</item>
        <item name="android:gravity">left</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:textColor">#666</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="klass_yrok">
        <item name="android:layout_marginLeft">5dp</item>
        <item name="android:textSize">35dp</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="layout_klass_cont">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">right</item>
        <item name="android:gravity">right</item>
        <item name="android:orientation">horizontal</item>
    </style>
    <style name="time_yrok">
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginLeft">10dp</item>
        <item name="android:textSize">20dp</item>
        <item name="android:textColor">#014a96</item>
    </style>
пытаюсь создать динамически элементы с такими стилями но ничего не получается, как это делается ? особенно с Layout-ами. Гдето накапал вот такое с простыми View :
Java
1
2
3
4
5
6
7
8
TextView text1 = new TextView(this,null,R.style.time_yrok);
TextView text2 = new TextView(this,null,R.style.time_yrok);
TextView text3 = new TextView(this,null,R.style.time_yrok);
TextView text4 = new TextView(this,null,R.style.time_yrok);
text1.setText("00:00");
text2.setText("до");
text3.setText("00:00");
text4.setText("с");
Сами элементы создаются но без стилей которые указаны в style.xml.. что не так ?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2014, 15:29
Ответы с готовыми решениями:

Динамическое создание элементов на активити
Здравствуйте! Возникла проблема динамического создания элементов. К примеру,...

Динамическое создание элементов интерфейса
Здравствуйте. Есть небольшая проблема с динамическим созданием элементов...

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

Динамическое создание элементов на другом activity
В чем суть: Нажимаем кнопку в лэйауте1, после чего создается ImageButton на...

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

6
petruchodd
129 / 126 / 22
Регистрация: 23.06.2009
Сообщений: 687
24.09.2014, 03:53 #2
Лучший ответ Сообщение было отмечено EgorDybovik как решение

Решение

Попробуй чето типа
Java
1
 text1.setTextAppearance(this, R.style.time_yrok);

Не по теме:

p.s. хм.. завтра тоже попробую.. но довольно таки интересный вопрос.. Если таким образом простым можна задавать всякие параметры которые вводятся в **layout.xml,то это даже очень интересно :/ я очень не люблю мучатся с xml layouts поэтому создаю всё в ручную.
плюсы : нету :/ просто мне так удобно и на ходу можна добавить то, что нужно , а не парить мозги с инфлейтами или тому подобному коду .
минусы : не все параметры можна ввести програмно :((

1
EgorDybovik
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 128
24.09.2014, 12:19  [ТС] #3
Получилось так, но на половину)) какие то стили применились а какие то нет.. например цвет текста и его размер применился, а margin нет((

А мне так проще делать, сначала создать один стиль а потом его подстовлять под необходимый елемент, я просто вообще занимаюсь web программированием а там только так )
0
petruchodd
129 / 126 / 22
Регистрация: 23.06.2009
Сообщений: 687
24.09.2014, 13:02 #4
Цитата Сообщение от EgorDybovik Посмотреть сообщение
апример цвет текста и его размер применился, а margin нет((
вот за margins я не знаю(( но видимо я ошибся.. таким образом нельзя заменить данные с xml..

Margins можна задать через параметры.. но это лишний код :/ значит нужно искать путь которым можна полностью присобачить margins
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
24.09.2014, 13:14 #5
А зачем оно вообще? Не проще создать отдельный layout, инфлейтить его и подставлять нужный текст?
Java
1
2
TextView textView  = (TextView) View.inflate(this, R.text_view_layout, null);
textView.setText("text");
Можно для удобства, если много таких вьюшек, сделать метод принимающий String и возвращающий TextView
Java
1
2
3
4
5
6
7
public TextView getCustomTextView(String text){
 
TextView textView  = (TextView) View.inflate(this, R.text_view_layout, null);
textView.setText(text);
return textView;
 
}
И получать из него вьюшку
Java
1
2
TextView tv1 = getCustomTextView("text1");
TextView tv2 = getCustomTextView("text2");
0
EgorDybovik
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 128
24.09.2014, 13:53  [ТС] #6
а что такое inflate и чем оно лучше ?, суть вся в том что я динамически в цыкле создаю 6 layout вот такой струкутры
XML
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
<LinearLayout
                    style="@style/once_items_yr">
                    <TextView
                        android:id="@+id/textView1"
                        style="@style/namber_yrok"
                        android:text="1" />
 
                    <Spinner
                        android:id="@+id/spinner1"
                        android:layout_width="95dp"
                        android:layout_height="wrap_content" />
 
                    <LinearLayout
                        style="@style/time_yrok_red"
                        android:onClick="viewDialog_time">
 
                        <TextView
                            style="@style/time_yrok"
                            android:text="c" />
                        <TextView
                            style="@style/time_yrok"
                            android:id="@+id/hour_and_minut"
                            android:text="8:00" />
                        <TextView
                            style="@style/time_yrok"
                            android:text="до" />
                        <TextView
                            style="@style/time_yrok"
                            android:id="@+id/hour_and_minut_end"
                            android:text="8:45" />
 
                    </LinearLayout>
                    
                </LinearLayout>
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
24.09.2014, 14:09 #7
Цитата Сообщение от EgorDybovik Посмотреть сообщение
а что такое inflate
Получение View из xml файла-разметки.
Цитата Сообщение от EgorDybovik Посмотреть сообщение
суть вся в том что я динамически в цыкле создаю 6 layout вот такой структуры
Пожалуйста, любой структуры можно, вот на вашу код
Java
1
2
3
4
5
6
7
8
9
10
11
public TextView getCustomView(String startText, String endText){
 
LinearLayout view  = (LinearLayout) View.inflate(this, R.view_layout, null);
TextView hourAndMinut = (TextView) view.findViewById(R.id.hour_and_minut);
TextView hourAndMinutEnd = (TextView) view.findViewById(R.id.hour_and_minut_end);
hourAndMinut.setText(startText);
hourAndMinutEnd.setText(endText);
 
return view;
 
}
И создание в цикле
Java
1
2
3
4
5
6
7
ArrayList<View> views = new ArrayList<View>;
for(int i = 0; i < 6; i++){
 
View view = getCustomView(i + ":00", i + ":30");
views.add(view);
 
}
В результате получите ArrayList с 6 полными вьюшками т.е. все что у вас в xml нарисовано. С нужным текстом на каждой, здесь будет у первой: нач. время 0:00 кон. время 0:30, у второй 1:00 и 1:30, соответственно и так далее до 5:00 и 5:30.
0
24.09.2014, 14:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2014, 14:09

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

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

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


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

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

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