Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
EgorDybovik
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 128
#1

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

22.09.2014, 15:29. Просмотров 1446. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамическое создание элементов со стилями (Программирование Android):

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

Динамическое создание элементов интерфейса - Программирование Android
Здравствуйте. Мне интересно знать, как динамически создавать элементы интерфейса. Например, в цикле вызывается метод, который создает...

Динамическое создание элементов интерфейса - Программирование Android
Здравствуйте. Есть небольшая проблема с динамическим созданием элементов интерфейса. Не понимаю как это сделать в теории: есть 2 кнопки, по...

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

Динамическое создание интерфейса - Программирование Android
Уважаемые форумчане, не подскажите как можно реализовать создание интерфейса в активити по переданному приложению xml-файлу, чтобы...

Динамическое создание кнопки - Программирование Android
Добрый день, подскажите пожалуйста как программно можно создать кнопку или картинку и отобразить их на экране?

6
petruchodd
121 / 118 / 13
Регистрация: 23.06.2009
Сообщений: 635
24.09.2014, 03:53 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Попробуй чето типа
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
121 / 118 / 13
Регистрация: 23.06.2009
Сообщений: 635
24.09.2014, 13:02 #4
Цитата Сообщение от EgorDybovik Посмотреть сообщение
апример цвет текста и его размер применился, а margin нет((
вот за margins я не знаю(( но видимо я ошибся.. таким образом нельзя заменить данные с xml..

Margins можна задать через параметры.. но это лишний код :/ значит нужно искать путь которым можна полностью присобачить margins
0
Spelcrawler
531 / 501 / 111
Регистрация: 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 / 111
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2014, 14:09
Привет! Вот еще темы с ответами:

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

Динамическое создание View - Программирование Android
Есть шаблон: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

Динамическое создание кнопки - Программирование Android
Добрый день, искал и перебровывал много способов, но не один не помог( Нужно создать 2 колонки (6 рядов) с кнопками динамически, но при...

Динамическое создание интерфейса - Программирование Android
Здравствуйте уважаемые. Помогите справиться с задачей. Хочу динамически создать несколько LinearLayout c TextView, ImageView и Button...


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

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

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