Autore Topic: Creare dei layout dinamici  (Letto 1388 volte)

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Creare dei layout dinamici
« il: 14 Aprile 2012, 23:21:34 CEST »
0
Salve ragazzi,
sono di nuovo qui a rompervi le scatole con un quesito...
Ho due activity con due layout differenti, però entrambi i layout presentano la barra in alto con alcuni widget in comune... al momento attuale ho creato due diversi file xml di layout (uno per ogni activity) duplicando di fatto la parte che descrive la barra in alto...
ma mi piacerebbe poter evitare questa duplicazione..
In tal senso mi sono mosso in questo modo:


Ho creato un file XML che contiene solamente la barra superiore (composta da un LinearLayout come container)
Questo è il codice:
Codice (Java): [Seleziona]
<LinearLayout

            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/topbar_color"
            android:orientation="horizontal"
            android:paddingBottom="3dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:paddingTop="3dp"
            android:id="@+id/topBarTemplate">

            <Button
                android:id="@+id/homebtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/home"
                android:onClick="apriHome" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.59"
                android:background="@color/topbar_color"
                android:orientation="vertical"
                android:paddingBottom="3dp"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:paddingTop="3dp"
                 >

                <TextView
                    android:id="@+id/textact1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:text="@string/scelta_rapida"
                    android:textColor="@color/white">
                </TextView>

                <TextView
                    android:id="@+id/textact2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:text="@string/alimenti"
                    android:textColor="@color/white"
                    android:textSize="20dp">
                </TextView>
            </LinearLayout>
       
   
</LinearLayout>
Ho assegnato come id il nome topBarTemplate.

A questo punto ho creato il file XML del layout di una mia activity e ho definito al suo interno un LinearLayout che fungerà da "container" per il layout appena scritto.

Codice (Java): [Seleziona]
 <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/topBarContainer"
                 >
 </LinearLayout>
...
...
...

Ora nel codice onCreate della mia Activity ho scritto questo

Codice (Java): [Seleziona]
LinearLayout topBarCont=(LinearLayout)findViewById(R.id.topBarContainer);  //Questo funziona
LinearLayout  topBarTemplate = (LinearLayout)findViewById(R.id.topBarTemplate);   //questo non funziona, restituisce null
 topBarCont.addView(topBarTemplate,0);
       


Ecco il problema è proprio questo... il findViewById non restituisce niente e quindi non funziona l'addview....

Secondo voi dove sto sbagliando?

Grazie a tutti per l'aiuto
Leandro Rocchi
Software Developer - Geodatabase Designer

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creare dei layout dinamici
« Risposta #1 il: 14 Aprile 2012, 23:28:45 CEST »
+1
Puoi usare i fragment.
Qui c'è una bella guida scritta da Bradipao:
http://www.anddev.it/index.php?topic=6413.0
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Creare dei layout dinamici
« Risposta #2 il: 17 Aprile 2012, 10:06:06 CEST »
0
Ah ok, non le ho mai usate le fragment..mi documenterò :)
Grazie mille!
Leandro Rocchi
Software Developer - Geodatabase Designer