Domanda

Sto scrivendo un manager app compito che scarica un elenco di compiti e attività secondarie da un server e crea una nuova casella di controllo per ogni elemento e lo aggiunge un layout lineare (chiamata ll sotto). Il problema che sto avendo è che non riesco ad impostare il "margine Piano left" utilizzando Java come posso con XML (questo è per le attività secondarie per i rientri delle un po 'sullo schermo). Posso impostare la maggior parte altre proprietà XML, ma cb.setMargins () non funziona (dice undefined per tipo checkbox). Impostare l'imbottitura del corso non ottenere il risultato desiderato.

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);
    }

Tutte le idee o come avrei lavorato con questo?

È stato utile?

Soluzione

Credo che si dovrebbe aggiungere la casella di controllo alla LinearLayout utilizzando le LayoutParams corrette:

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

Speranza che aiuta!

Altri suggerimenti

Ciao Prova questo ...

    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);
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top