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

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

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

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

24.10.2015, 15:58. Просмотров 307. Ответов 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. и так далее
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:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru