2016-01-05 2 views
0

Я создаю приложение, которое нужно создать на экране на лету. Я хочу создать серию идентичной строки с 4 текстовыми полями. Я пропускаю что-то, потому что все поля перечислены в предыдущем поле.Место размещения динамического экрана android

Мой код цикл:

LayoutParams lParm = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

    for(int i = 0; i < 10; i++) 
    { 
     TextView tvItem = new TextView(this); 
     tvItem.setLayoutParams(lParm); 
     tvItem.setText("Item #"+i); 
     tvItem.setBackgroundColor(0xff66ff66); 
     tvItem.setEms(7); 
     tvItem.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18); 
     ll.addView(tvItem); 

     EditText etPrep = new EditText(this); 
     etPrep.setLayoutParams(lParm); 
     etPrep.setText("0"); 
     etPrep.setEms(2); 
     ll.addView(etPrep); 

     EditText etOpen = new EditText(this); 
     etOpen.setLayoutParams(lParm); 
     etOpen.setText("0"); 
     etOpen.setEms(2); 
     ll.addView(etOpen); 

     EditText etCase = new EditText(this); 
     etCase.setLayoutParams(lParm); 
     etCase.setText("0"); 
     etCase.setEms(2); 
     ll.addView(etCase); 

    } 

Каждый вид добавлен в цикле должна быть рядом друг с другом. прежде чем перейти к следующей строке.

Что мне не хватает?

+0

'LinearLayout' (внешний) с вертикальной ориентацией и innter' LinearLayout' с горизонтальной ориентацией? Ex. 'Ll.setOrientation (LinearLayout.HORIZONTAL);'? –

+0

Это добавляет все поля в одну строку. У меня уже есть ВЕРТИКАЛЬНЫЙ набор. – user3594341

+0

Проверьте мой ответ, вот что я имел в виду. –

ответ

0

Создать внутреннюю LinearLayout для каждой строки, например:

LinearLayout outer = new LinearLayout(this); 
outer.setOrientation(LinearLayout.VERTICAL); 

LayoutParams lParm = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

for(int i = 0; i < 10; i++) 
{ 

    LinearLayout inner = new LinearLayout(this); 
    inner.setOrientation(LinearLayout.HORIZONTAL); 

    TextView tvItem = new TextView(this); 
    tvItem.setLayoutParams(lParm); 
    tvItem.setText("Item #"+i); 
    tvItem.setBackgroundColor(0xff66ff66); 
    tvItem.setEms(7); 
    tvItem.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18); 
    inner.addView(tvItem); 

    EditText etPrep = new EditText(this); 
    etPrep.setLayoutParams(lParm); 
    etPrep.setText("0"); 
    etPrep.setEms(2); 
    inner.addView(etPrep); 

    EditText etOpen = new EditText(this); 
    etOpen.setLayoutParams(lParm); 
    etOpen.setText("0"); 
    etOpen.setEms(2); 
    inner.addView(etOpen); 

    EditText etCase = new EditText(this); 
    etCase.setLayoutParams(lParm); 
    etCase.setText("0"); 
    etCase.setEms(2); 
    inner.addView(etCase); 

    outer.addView(inner); 

} 
+0

Да, лампочка шла только перед тем, как вы отправили. Благодаря! – user3594341

+0

@ user3645763 поэтому, когда ваша проблема решена, отметьте ответ как принятый (отметьте слева). –

Смежные вопросы