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

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

Войти
Регистрация
Восстановить пароль
 
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
#1

Программное добавление элементов - Программирование Android

24.10.2015, 15:58. Просмотров 340. Ответов 2
Метки нет (Все метки)

Уважаемы подскажите такую ситуацию, не могу немного понять...Как на Relative разметке программно добавлять элементы, чтобы их можно было например располагать снизу относительно выбранного элемента, сбоку, выравнивать по нижнему краю и так далее..

У меня есть
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
46
47
48
49
50
51
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
 
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        xmlns:android="http://schemas.android.com/apk/res/android">
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/addRel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.delyanka.help_the_farmer.AddKormActivity"
    >
 
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Выберите группу:"
        android:id="@+id/tvFindGroup"
        android:layout_alignBottom="@+id/spFindGroup"
        />
 
    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spFindGroup"
        android:entries="@array/spGroup"
        android:layout_toRightOf="@+id/tvFindGroup"
        android:layout_toEndOf="@+id/tvFindGroup"
        />
 
 
 
 
</RelativeLayout>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>
и код
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
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.delyanka.help_the_farmer;
 
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
 
public class AddKormActivity extends AppCompatActivity  {
    public static final String EXTRA_NAME = "addKormName";
 
    Spinner spFindGroup;
    AutoCompleteTextView acTvGroup;
    TextView tvOE,tvPR;
    EditText etOE,etPR;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_korm);
 
        Intent addKormName = getIntent();
        final String addKormNameTitle = addKormName.getStringExtra(EXTRA_NAME);
        setTitle(addKormNameTitle);
 
        spFindGroup = (Spinner) findViewById(R.id.spFindGroup);
        spFindGroup.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent,
                                       View itemSelected, int selectedItemPosition, long selectedId) {
 
                if (selectedItemPosition==1){
                    RelativeLayout mainL = (RelativeLayout) findViewById(R.id.addRel);
                    RelativeLayout.LayoutParams viewParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
                            RelativeLayout.LayoutParams.MATCH_PARENT);
 
                    acTvGroup = new AutoCompleteTextView(AddKormActivity.this);
                    acTvGroup.setLayoutParams(viewParams);
                    mainL.addView(acTvGroup);
 
                    tvOE = new TextView(AddKormActivity.this);
                    tvOE.setLayoutParams(viewParams);
                    tvOE.setText("О/Э ККал ->");
                    mainL.addView(tvOE);
 
                    tvPR = new TextView(AddKormActivity.this);
                    tvPR.setLayoutParams(viewParams);
                    tvPR.setText("Протеин ->");
                    mainL.addView(tvPR);
 
                    etOE = new EditText(AddKormActivity.this);
                    mainL.addView(etOE);
 
                    etPR = new EditText(AddKormActivity.this);
                    mainL.addView(etPR);
 
                }
                else if (selectedItemPosition==2){
                    Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();
                }
 
            }
 
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
 
    }
 
}
Так вот TexView и Spinner у меня статичны, а программно нужно добавить элементы,

1. AutoCompleteTextView ниже TextView
2. TextView и EditText ниже AutoCompleteTextView и в одну строчку
3. и так далее
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2015, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программное добавление элементов (Программирование Android):

Программное добавление View элементов в Fragment - Программирование Android
Здравствуйте. Проблема такая: в приложении есть 2 вкладки. Переключение между ними реализуются через ViewPager и FragmentStatePagerAdapter....

Программное добавление View - Программирование Android
Доброго времени. Знаю что на эту тему много инфы, как на форуме так и на других ресурсах, но решения своей проблемы все же не нашел. суть...

Программное добавление View - Программирование Android
Не могу разобраться: нужно программно прилепить н-ное количество вьюх. Делаю так: Dialog dialog = new Dialog(pd.getContext()); ...

Программное добавление View - Программирование Android
Всем привет! У меня в роли setContentView выступает класс Draw2D, в котором я собираюсь рисовать кое-какую графику. Графика рисуется...

Программное добавление строкового ресурса - Программирование Android
Здравствуйте! Я храню данные для ListView в XML-файле строковых ресурсов: &lt;string-array name=&quot;cat_names&quot;&gt; &lt;item&gt;Рыжик&lt;/item&gt; ...

Программное добавление рамки Layout - Программирование Android
Добавляю рамку к Layout с помощью XML файла: &lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt; &lt;stroke...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
24.10.2015, 22:13 #2
RelativeLayout как раз для того, что бы распологать элементы относительно друг друга.
но я в подобной ситуации делаю по-другому: LinearLayout в определенное место, и уже его заполняю динамическими элементами.
0
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
24.10.2015, 22:52  [ТС] #3
Цитата Сообщение от bastrakov Посмотреть сообщение
RelativeLayout как раз для того, что бы распологать элементы относительно друг друга.
Это я в курсе поэтому и начал с него.

Цитата Сообщение от bastrakov Посмотреть сообщение
но я в подобной ситуации делаю по-другому: LinearLayout в определенное место, и уже его заполняю динамическими элементами.
Пришлось тоже пока прибегнуть к такому варианту
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2015, 22:52
Привет! Вот еще темы с ответами:

Программное создание GridLayout и добавление в него объектов - Программирование Android
Дисклеймер: Всем доброго дня! Я - новичок в написании программ под Android. Имеется небольшой опыт С++/С#, но речь не об этом. Я...

Программное создание layout и элементов - Программирование Android
Здравствуйте. У меня появилась необходимость создать полноценный layout без использования xml файлов. 1) Возможно ли загрузить layout со...

Добавление элементов в listview из БД - Программирование Android
Здравствуйте. У меня не выходит выбросить из списка одинаковые элементы. Я из БД вытаскиваю номера групп, которые соответственно...

Добавление нескольких элементов в ListView - Программирование Android
Не могу разобрался с ListView.Есть несколько адаптеров как их добавить в ListView?


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

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

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