Динамическое добавление кнопок под текстовыми представлениями

#android

#Android

Вопрос:

У меня есть следующее:

     Button[] buttons = new Button[forSale.size()];
    TextView[] textViews = new TextView[forSale.size()];

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

    for (int i = 0; i < forSale.size(); i  ) {

        rl = (RelativeLayout)findViewById(R.id.marketView);

        textViews[i] = new TextView(this);
        textViews[i].setText("n"   forSale.get(i).getTradeGoodType()
                  "t$"
                  forSale.get(i).getTradeGoodType().getBasePrice()  
                "n");
        textViews[i].setId(i);
        goodsForSaleText.append(textViews[i].getText());

        buttons[i] = new Button(getApplicationContext());
        buttons[i].setText("BUY");

        // add the rule that places your button below your TextView object
        params.addRule(RelativeLayout.BELOW, textViews[i].getId());

        buttons[i].setLayoutParams(params);
        rl.addView(buttons[i]);


    }
  

Моя проблема в том, что мои кнопки добавляются друг над другом в верхней части экрана, а не одна за другой под текстовыми представлениями.

В принципе, это должно выглядеть следующим образом:

TextView

Кнопка

TextView

Кнопка

TextView

Кнопка

Мне нужно динамически добавлять кнопки для каждого имеющегося у меня количества текстовых представлений (полученных из списка). Кто-нибудь может мне помочь?

Комментарии:

1. Попробуйте LinearLayout вместо RelativeLayout .. и добавьте вертикальную ориентацию к LinearLayout..

2. Почему бы просто не использовать вертикальную ориентацию LinearLayout .

3. Кроме того, используйте вертикальную линейную компоновку @ParthLotia

4. @Gourav да, вы правы..

Ответ №1:

Используйте LinearLayout с вертикальной ориентацией вместо RelativeLayout. Вы автоматически получите вертикальное положение объектов