TextView Dinámicos con Scroll

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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: