¿Cómo agregar vistas dinámicamente a RelativeLayout ya declarado en el diseño xml?

Decidí RelativeLayout en un archivo de diseño xml. Ahora quiero agregar Views desde el código al Diseño existente. Agregué un Button dinámicamente a este diseño existente como se muestra a continuación a través del código:

 rLayout = (RelativeLayout)findViewById(R.id.rlayout); LayoutParams lprams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); Button tv1 = new Button(this); tv1.setText("Hello"); tv1.setLayoutParams(lprams); tv1.setId(1); rLayout.addView(tv1); 

Ahora necesito agregar otro Button a la derecha del Button ya agregado. No puedo encontrar la manera en que puedo agregar la nueva a la derecha del botón agregado anteriormente.

Agregue la regla RelativeLayout.RIGHT_OF para el segundo Button LayoutParams agregado:

  // first Button RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.rlayout); RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); Button tv1 = new Button(this); tv1.setText("Hello"); tv1.setLayoutParams(lprams); tv1.setId(1); rLayout.addView(tv1); // second Button RelativeLayout.LayoutParams newParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); Button tv2 = new Button(this); tv1.setText("Hello2"); newParams.addRule(RelativeLayout.RIGHT_OF, 1); tv2.setLayoutParams(newParams); tv2.setId(2); rLayout.addView(tv2); 

puede ser que esto pueda ayudarte, pruébalo.

 rLayout = (RelativeLayout)findViewById(R.id.rlayout); LayoutParams lprams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); TableLayout tl=new TableLayout(this); rLayout.addView(tl); TableRow tr1=new TableRow(this); tl.addView(tr1); Button btn1 = new Button(this); btn1.setText("Hello"); btn1.setLayoutParams(lprams); btn1.setId(1); tr1.addView(btn1); TextView tv1 = new TextView(this); tv1.setWidth(40); tv1.setHeight(LayoutParams.WRAP_CONTENT); tr1.addView(tv1); Button btn2 = new Button(this); btn2.setText("World"); btn2.setLayoutParams(lprams); btn2.setId(2); tr1.addView(btn2); 

Crea otro botón:

 Button tv2 = new Button(this); tv2.setText("World"); tv2.setLayoutParams(lprams); tv2.setId(2); 

Agregue agregarlo a su RelativeLayout:

 rLayout.addView(tv2);