Динамически добавлять макеты (относительные макеты) друг под другом в Android

Я пытаюсь создать метод, в котором каждый раз, когда я нажимаю кнопку, я хочу, чтобы на экране отображалось поле «Относительный макет» под тем, которое есть в данный момент, или создайте его вверху, если его там нет, и я хочу, чтобы он сохранялся создание их ниже от каждого нажатия кнопки. В настоящее время при использовании этого метода ничего не происходит при нажатии кнопки.

Вот код, который у меня есть до сих пор, и может кто-нибудь помочь мне понять, что я делаю неправильно, и что я могу сделать, чтобы решить эту проблему:

public void createNewLayout(){

    int currentId = 10;

    for(int i = 1; i <= numberOfLayouts; i++){
        newLayoutContainer = new RelativeLayout(this);
        newLayoutContainer.setId(currentId);

        if(currentId == 10){
            newLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dpContainerHeight);
            newLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, containerLayout2.getId());
            newLayoutParams.addRule(RelativeLayout.ALIGN_RIGHT, containerLayout2.getId());
            newLayoutParams.addRule(RelativeLayout.BELOW, containerLayout2.getId());
            newLayoutParams.setMargins(0, 0, 0, dpMargin);
            newLayoutContainer.setBackgroundResource(R.color.display_panels);
        }

        else{
            newLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dpContainerHeight);
            newLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, newLayoutContainer.getId());
            newLayoutParams.addRule(RelativeLayout.ALIGN_RIGHT, newLayoutContainer.getId());
            newLayoutParams.addRule(RelativeLayout.BELOW, currentId-1);
            newLayoutParams.setMargins(0, 0, 0, dpMargin);
            newLayoutContainer.setBackgroundResource(R.color.display_panels);
        }

        newLayoutContainer.setLayoutParams(newLayoutParams);
        layout.addView(newLayoutContainer);

        currentId++;
    }

}

person James Meade    schedule 09.07.2013    source источник
comment
Я бы использовал LinearLayout с вертикальной ориентацией в качестве макета родителя/держателя. Тогда простое добавление дочерних элементов обеспечит правильный макет без дополнительного кода.   -  person Ken Wolf    schedule 09.07.2013
comment
Этот вопрос похож на этот, и я использовал его для создания своего метода: stackoverflow.com/questions/14139214/   -  person James Meade    schedule 09.07.2013
comment
макет - это RelativeLayout   -  person James Meade    schedule 09.07.2013
comment
Это потому, что у меня есть текстовые представления над полями, которые относятся друг к другу и по отношению к полям.   -  person James Meade    schedule 09.07.2013
comment
А layout правильно привязан к вашей деятельности? Вы инициализировали его через XML и т. д.?   -  person Ken Wolf    schedule 09.07.2013
comment
Я не ссылался на XML, а вместо этого программно создал новый RelativeLayout, но он отлично работает и именно так, как я хотел.   -  person James Meade    schedule 09.07.2013
comment
давайте продолжим это обсуждение в чате   -  person James Meade    schedule 09.07.2013