Comment disposer de Vues dans RelativeLayout par programmation?

Je suis en train de réaliser ce qui suit par programme (plutôt que de manière déclarative via XML):

<RelativeLayout...>
   <TextView ...
      android:id="@+id/label1" />
   <TextView ...
      android:id="@+id/label2"
      android:layout_below: "@id/label1" />
</RelativeLayout>

En d'autres termes, comment puis-je faire la deuxième TextView apparaissent en dessous du premier, mais je veux le faire dans le code:

RelativeLayout layout = new RelativeLayout(this);
TextView label1 = new TextView(this);
TextView label2 = new TextView(this);
...
layout.addView(label1);
layout.addView(label2);
setContentView(layout);

Mise à jour:

Merci, TreeUK. Je comprends la direction générale, mais cela ne fonctionne toujours pas - "B" chevauche "Un". Ce que je fais mal?

RelativeLayout layout = new RelativeLayout(this);
TextView tv1 = new TextView(this);
tv1.setText("A");

TextView tv2 = new TextView(this);
tv2.setText("B");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.RIGHT_OF, tv1.getId());

layout.addView(tv1);        
layout.addView(tv2, lp);
Dans l'exemple de code, vous n'êtes pas vraiment l'ajout de la règle de RelativeLayout.Ci-DESSOUS, tv1.getId();
vous devez fournir la carte d'identité pour votre enfant vues: tv1.setId(1); tv2.setId(2); Parent points de vue ne sont pas attribuer automatiquement les vues enfant d'un Id, et la valeur par défaut pour un attribut Id est NO_ID. Id n'avez pas à être unique dans une vue hiérarchique; 1, 2, 3, etc sont tous beaux les valeurs à utiliser, et vous devez les utiliser pour par rapport à l'ancrage de travailler dans RelativeLayout.

OriginalL'auteur Dan | 2010-02-21