Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 30/10/11, 22:48:19
Array

[xs_avatar]
sergiodebst sergiodebst no está en línea
Miembro del foro
 
Fecha de registro: jun 2011
Mensajes: 133
Tu operador: Yoigo

TableLayout desde codigo

Buenas, ahora en el cole estoy empezando a tocar cosillas de android y a mi como que me ha tocado la fibra y me ha dado por curiosear por mi cuenta y ir probando witgets y cosillas, en fin al lio

Vereis lo que quiero conseguir es una interfaz como esta:


Esto lo consigo facil haciendo a mano el XML con este codigo:
Código:
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <ScrollView
            android:id="@+id/scrollView1"
            android:layout_width="match_parent"
            android:layout_height="366dp" >

            <TableLayout
                android:id="@+id/tableLayout1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <TableRow
                    android:id="@+id/tableRow1"
                    android:layout_width="wrap_content"
                    android:layout_height="0dp"
                    android:layout_marginBottom="10dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_weight="1" >

                    <Button
                        android:id="@+id/btn1"
                        android:layout_weight="1"
                        android:contentDescription="2130968577"
                        android:onClick="iniciar" />

                    <Button
                        android:id="@+id/btn2"
                        android:layout_weight="1"
                        android:contentDescription="2130968576"
                        android:onClick="iniciar" />

                    <Button
                        android:id="@+id/btn3"
                        android:layout_weight="1"
                        android:contentDescription="2130968578"
                        android:onClick="iniciar" />
                </TableRow>

        
            </TableLayout>
        </ScrollView>

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" android:layout_marginTop="20dp" android:onClick="stop" android:layout_marginLeft="125dp"/>

    </LinearLayout>
El problema sucede cuando he de meter un numero de botones que supongamos que yo no se o es muy grande de manera que no puedo hacer a mano el XML, entonces me interesa hacer la tabla con codigo, indagando un poco por google he conseguido sacar esto:
Código:
public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        
            setContentView(R.layout.main);
            //Pillo la tabla del XML
                TableLayout tabla = (TableLayout)findViewById(R.id.tableLayout1);
            //Creo una nueva fila
                TableRow tr = new TableRow(this);
            //Creo los parametros que debe de tener la fila y se los asigno
                LayoutParams parametrosRow=  new LayoutParams(LayoutParams.WRAP_CONTENT);
                parametrosRow.setMargins(2, 2, 2, 0);
                tr.setLayoutParams(parametrosRow);
        
            //Creo un boton
                Button b = new Button(this);
                 b.setText("Button");
            //meto el boton en la fila
                 tr.addView(b);
            //Repito el proceso 2 veces mas para tener 3 botones
                b = new Button(this);
                b.setText("Button2");
                tr.addView(b);
              
                b = new Button(this);
                b.setText("Button3");
                tr.addView(b);
                  
             //Lo meto todo en el tableLayout
             tabla.addView(tr,parametrosRow);
        
    
    }
NOTA: En parametrosRow he puesto 2 porque mas o menos me imagino que 10dp son unos 2 px

Codigo XML:
Código:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <ScrollView
            android:id="@+id/scrollView1"
            android:layout_width="match_parent"
            android:layout_height="366dp" >

            <TableLayout
                android:id="@+id/tableLayout1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

               
            </TableLayout>
        </ScrollView>

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" android:layout_marginTop="20dp" android:onClick="stop" android:layout_marginLeft="125dp"/>

    </LinearLayout>
El problema es que con esto me queda asi:


No sé donde estoy metiendo la gamba, a ver si alguien con mas experiencia creando este tipo de cosas desde codigo me puede dar un poco de orientacion.

Gracias de antemano.

PD: Ya se que con esto no automatizo nada, pero prefiero saber hacerlo statico por codigo y hacerlo bien antes de meterme en bucles.

PD2: Si a alguien le interesa, lo del codigo lo he sacado de http://en.androidwiki.com/wiki/Dynam...to_TableLayout
Responder Con Cita


  #2  
Viejo 01/11/11, 16:07:01
Array

[xs_avatar]
sergiodebst sergiodebst no está en línea
Miembro del foro
 
Fecha de registro: jun 2011
Mensajes: 133
Tu operador: Yoigo

Vale me han ayudado en otro foro, lo que me fallaba era que no me habia dado cuenta de que los botones tienen "weight=1"

Saludos
Responder Con Cita
  #3  
Viejo 23/06/13, 20:00:49
Array

[xs_avatar]
aloalo aloalo no está en línea
Baneado
 
Fecha de registro: abr 2013
Mensajes: 30
Modelo de smartphone: Xperia Arc S
Tu operador: Vodafone
como haces para que no te borre el avance que escribes? porque estoy programando un app en android es una especie de diario, y me ocurre que cuando escribo algo y le doy hacia atrás y vuelvo a editar algo donde había escrito antes no sale nada es como si borrase lo que he escrito cuando le doy atrás, como hago para que se guarde

Última edición por aloalo Día 23/06/13 a las 20:05:28.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 20:30:11 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /