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

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

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

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

24.10.2015, 15:58. Просмотров 326. Ответов 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     Программное добавление элементов
Посмотрите здесь:

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

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

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

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

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

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

Программное завершение приложения - Программирование Android
Здравствуйте. Как программно завершить приложение? То есть не завершить активность через finish(), а именно выйти из приложения вообще.

Программное создание TextView - Программирование Android
Всем привет! помогите пожалуйста. Как сделать по нажатию на кнопку автоматическое создание нескольких других элементов например TextView...

Программное копирование файлов - Программирование Android
Здравствуйте. Общий принцип кода такой: 1) находим в списке установленных приложений необходимое мне: PackageManager packageManager =...

Программное удаление приложения - Программирование Android
Реально ли из android-приложения деинсталлировать другое android-приложение?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 в определенное место, и уже его заполняю динамическими элементами.
Пришлось тоже пока прибегнуть к такому варианту
Ответ Создать тему
Опции темы

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