Mi primera entrada “real” trata sobre un problema que tuve a la hora de mostrar varios textos, varios TextView por pantalla, ya que cada uno aparecía seguido tras el anterior, y mi idea es que cada texto pudiera ponerlo en donde yo quisiera. En este caso, un texto que ocupe todo el ancho de la pantalla y cuando venga otro texto, aparezca debajo. Os dejo con el código:
Fichero xml:
fichero .java :
package com.olidroide;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class textoDinamico extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
//Obtenemos el LinearLayout definido en la vista
LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
//Realizamos 30 repeticiones
for (int i = 0; i < 30; i++) {
//Creamos un nuevo TextView
TextView tv = new TextView(this);
//Como texto el número de iteración
tv.setText("Nº"+i);
/*Creamos una RelativeLayout:
* Porque las posiciones de los hijos de RelativeLayout están relacionadas
* con otros hijos o su padre.
*/
RelativeLayout rl = new RelativeLayout(this);
//Creamos un LayoutParams con los parámetros
//Información para el hijo (TextView) del RelativeLayout
RelativeLayout.LayoutParams parametros = new RelativeLayout.LayoutParams(
//El Ancho, ajustado al contenido
LayoutParams.WRAP_CONTENT,
//El Alto, ajustado al contenido
LayoutParams.WRAP_CONTENT);
//Añadimos el parámetro de que la alinición sea hacia la izquierda
//parametros.addRule(RelativeLayout.ALIGN_LEFT);
//No es necesario para el ejemplo
//Y se lo aplicamos a la TextView creada antes
tv.setLayoutParams(parametros);
//También podemos declararlo de la siguiente manera
rl.setLayoutParams(new LayoutParams(
//El ancho, ajustado al padre
LayoutParams.FILL_PARENT,
//El Alto, ajustado al contenido
LayoutParams.WRAP_CONTENT)
);
//Añadimos el TextView a la RelativeLayout
rl.addView(tv);
//Y la RelativeLayout a la LinearLayout
ll.addView(rl);
}
}
}
Espero que os sirva de ayuda 😉
Anuncios