2010-10-30 3 views
2

Я пишу приложение диспетчера задач, которое загружает список задач и подзадач с сервера и создает новый флажок для каждого элемента и добавляет его в линейный макет (называемый ll ниже) , Проблема, с которой я столкнулась, заключается в том, что я не могу установить «margin layout left», используя java, как я могу, с помощью XML (это для подзадач, чтобы они немного отступали на экране). Я могу установить большинство других свойств xml, но cb.setMargins() не работает (указывает флажок undefined for type). Конечно, настройка прокладки не дает желаемого результата.Установите layoutmargin на динамически созданный флажок

for(int i=0;i<tasks.size();i++) { 
CheckBox cb = new CheckBox(this); 
cb.setText(tasks.get(i).subtask_desc); 
cb.setButtonDrawable(R.drawable.checkbox_xml); 
ll.addView(cb); 
    } 

Любые идеи или как я буду работать через это?

ответ

6

Я думаю, вы должны добавить флажок в LinearLayout используя правильные LayoutParams:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
params.leftMargin = 123; 
li.addView(cb, params); 

Надежда, что помогает!

+1

Я не видел, что код 100 раз просто не понимал, как правильно его использовать. Я всегда думал, что создал новый линейный макет. Это отлично работало и было очень полезно, спасибо. – Satchmo

1

Привет Попробуйте это ...

private LinearLayyout ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
    params.leftMargin = 123;; 
    CheckBox cb; 
    for(int i = 0; i < 10; i++) { 
     cb = new CheckBox(this); 
     cb.setText(categoryListArray[i]); 
     ll.addView(cb, ll); 
    } 
+0

Как это добавляет поле на динамически созданный флажок? – Oleksiy

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