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

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

Восстановить пароль Регистрация
 
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
24.10.2015, 15:58     Программное добавление элементов #1
Уважаемы подскажите такую ситуацию, не могу немного понять...Как на 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. и так далее
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2015, 15:58     Программное добавление элементов
Посмотрите здесь:

Android Программное добавление View
Программное создание интерфейса Android
Программное добавление View Android
Добавление нескольких элементов в ListView Android
Android Программное добавление строкового ресурса
Android Программное создание GridLayout и добавление в него объектов
Android Программное масштабирование
Android Программное создание layout и элементов
Добавление элементов в listview из БД Android
Программное добавление рамки Layout Android
Android Программное добавление View элементов в Fragment
Android Программное добавление View

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

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

Цитата Сообщение от bastrakov Посмотреть сообщение
но я в подобной ситуации делаю по-другому: LinearLayout в определенное место, и уже его заполняю динамическими элементами.
Пришлось тоже пока прибегнуть к такому варианту
Yandex
Объявления
24.10.2015, 22:52     Программное добавление элементов
Ответ Создать тему
Опции темы

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