Autore Topic: TAB Layouts  (Letto 3487 volte)

Offline bobboteck

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
    • IT-Robotix
  • Dispositivo Android:
    HTC DREAM
  • Sistema operativo:
    Windows
TAB Layouts
« il: 17 Marzo 2010, 14:54:40 CET »
0
Ciao a tutti,

per prima cosa complimenti per l'ottima iniziativa, ci voleva proprio.
Come seconda invece vi segnalo il mio problema, sto cercando di realizzare un layout a TAB, ho seguito le indicazioni sul tutorial del sito Google e ho verificato che le correzioni che avevo apportato erano corrette tramite tutti gli altri siti che riportano i vari errori.
Però anche con queste correzioni, quando avvio l'applicazione nell'emulatore continua a segnalarmi un errore appena si apre, poi automaticamente si chiude.

Purtroppo qui non ho il codice del programma in questione da farvi vedere, voi avete qualche esempio funzionante che posso controllare?

Grazie
« Ultima modifica: 30 Settembre 2010, 14:52:26 CEST da JD »
/* ----------------------------
http://www.it-robotix.net
"Ci sono 10 categorie di persone al mondo: quelle che capiscono il sistema binario e quelle che non lo capiscono."
---------------------------- */

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:TAB Layouts
« Risposta #1 il: 17 Marzo 2010, 15:12:14 CET »
0
Ciao, grazie per i complimenti :)

Senza codice e/o logcat è tosta aiutarti, però ti posso allegare un esempio funzionante di tab layout:

Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;

public class Stats extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                // Otteniamo il riferimento al TabHost
                TabHost tabHost = (TabHost) findViewById(R.id.myTabHost);
                tabHost.setup();               
                // Aggiungiamo il Tab associato alla prima view
                tabHost.addTab(tabHost.newTabSpec("tabview1").setContent(R.id.tabview1).setIndicator(this.getString(R.string.training)));
                // Aggiungiamo il Tab associato alla seconda view
                tabHost.addTab(tabHost.newTabSpec("tabview2").setContent(R.id.tabview2).setIndicator(this.getString(R.string.race)));
                // Aggiungiamo il Tab associato alla terza view
                tabHost.addTab(tabHost.newTabSpec("tabview3").setContent(R.id.tabview3).setIndicator(this.getString(R.string.total)));
        }
}

Codice (XML): [Seleziona]
<TabHost
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/myTabHost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
                android:id="@+id/myLayout"
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
                <TabWidget
                        android:id="@android:id/tabs"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"></TabWidget>
                <FrameLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@android:id/tabcontent">
                        <LinearLayout
                                android:orientation="vertical"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:id="@+id/tabview1">
                                <TextView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:text="tabview1" />
                        </LinearLayout>
                        <LinearLayout
                                android:orientation="horizontal"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:id="@+id/tabview2">
                                <TextView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:text="tabview2" />
                        </LinearLayout>
                        <LinearLayout
                                android:orientation="horizontal"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:id="@+id/tabview3">
                                <TextView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:text="tabview3" />
                        </LinearLayout>
                </FrameLayout>
        </LinearLayout>
</TabHost>
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline bobboteck

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
    • IT-Robotix
  • Dispositivo Android:
    HTC DREAM
  • Sistema operativo:
    Windows
Re:TAB Layouts
« Risposta #2 il: 17 Marzo 2010, 17:52:02 CET »
0
Grazie mille, lo so che senza codice è difficile infatti non avendo niente con me ho chiesto un esempio funzionante  ;)

Stasera provo e poi ti faccio sapere se ho avuto problemi, grazie ancora.
/* ----------------------------
http://www.it-robotix.net
"Ci sono 10 categorie di persone al mondo: quelle che capiscono il sistema binario e quelle che non lo capiscono."
---------------------------- */

Offline bobboteck

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
    • IT-Robotix
  • Dispositivo Android:
    HTC DREAM
  • Sistema operativo:
    Windows
Re:TAB Layouts
« Risposta #3 il: 17 Marzo 2010, 20:14:29 CET »
0
Grazie funziona alla perfezione, e pensare che ci ho perso tanto di quel tempo.
/* ----------------------------
http://www.it-robotix.net
"Ci sono 10 categorie di persone al mondo: quelle che capiscono il sistema binario e quelle che non lo capiscono."
---------------------------- */

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:TAB Layouts
« Risposta #4 il: 17 Marzo 2010, 20:15:49 CET »
0
Figurati, essere d'aiuto mi fa sempre piacere :)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:[RISOLTO] TAB Layouts
« Risposta #5 il: 22 Settembre 2010, 10:24:12 CEST »
0
Buongiorno
volevo evitare di aprire un nuovo topic perchè la mia domanda è inerente a questo

come posso fare a visualizzare i tre bottoni in basso invece che in alto
ho provato con layout_gravity="bottom" al frame cioè al componente con id:
android:id="@android:id/tabcontent"
ma non è cambiato nulla

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:[RISOLTO] TAB Layouts
« Risposta #6 il: 23 Settembre 2010, 09:51:14 CEST »
0
Buongiorno

non c'è alcun modo di visualizzare i tre bottoni in basso invece che in alto?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:[RISOLTO] TAB Layouts
« Risposta #7 il: 23 Settembre 2010, 10:00:03 CEST »
+1
Ma con "bottoni" intendi il TabWidget?

Prova così:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<TabHost
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/myTabHost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
                android:id="@+id/myLayout"
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
                <FrameLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@android:id/tabcontent"
                        android:layout_weight="1">
                        <LinearLayout
                                android:orientation="vertical"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:id="@+id/tabview1">
                                <TextView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:text="tabview1" />
                        </LinearLayout>
                        <LinearLayout
                                android:orientation="horizontal"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:id="@+id/tabview2">
                                <TextView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:text="tabview2" />
                        </LinearLayout>
                        <LinearLayout
                                android:orientation="horizontal"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:id="@+id/tabview3">
                                <TextView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:text="tabview3" />
                        </LinearLayout>
                </FrameLayout>
                <TabWidget
                        android:id="@android:id/tabs"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content" />
        </LinearLayout>
</TabHost>
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:TAB Layouts
« Risposta #8 il: 19 Ottobre 2010, 15:14:29 CEST »
0
Ho implementato un layout con i tab con il codice riportato dal post di JD
questo layout l'ho associato ad un'activity con il seguente codice:

Codice (Java): [Seleziona]
public class MyTabTest extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.my_tab_layout);

// Otteniamo il riferimento al TabHost
                TabHost tabHost = (TabHost) findViewById(R.id.myTabHost);
                tabHost.setup();
                // Aggiungiamo il Tab associato alla prima view
                tabHost.addTab(tabHost.newTabSpec("tabview1").setContent(R.id.tabview1)
                                .setIndicator(this.getString(R.string.tab1)));
                // Aggiungiamo il Tab associato alla seconda view
                tabHost.addTab(tabHost.newTabSpec("tabview2").setContent(R.id.tabview2)
                                .setIndicator(this.getString(R.string.tab2)));
                // Aggiungiamo il Tab associato alla terza view
                tabHost.addTab(tabHost.newTabSpec("tabview3").setContent(R.id.tabview3)
                                .setIndicator(this.getString(R.string.tab3)));
                // Aggiungiamo il Tab associato alla quarta view
                tabHost.addTab(tabHost.newTabSpec("tabview4").setContent(R.id.tabview4)
                                .setIndicator(this.getString(R.string.tab4)));
                               
    }
}

volevo sapere, come faccio ad associare un activity che venga eseguita quando si preme sul tab2 (TabWidget n. 2), un'altra activity che venga seguita quando si preme sul tab3 ecc...?

grazie

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:TAB Layouts
« Risposta #9 il: 19 Ottobre 2010, 15:22:11 CEST »
0
Non l'ho testato ma dovrebbe funzionare:
Codice (Java): [Seleziona]
Intent intent;  // Reusable Intent for each tab
[...]
intent = new Intent().setClass(this, MyActivity.class);
tabHost.addTab(tabHost.newTabSpec("tabview1").setContent(R.id.tabview1)
                                .setIndicator(this.getString(R.string.tab1))).setContent(intent);

Trovi le istruzioni dettagliate nella documentazione ufficiale: Tab Layout | Android Developers
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:TAB Layouts
« Risposta #10 il: 19 Ottobre 2010, 17:05:35 CEST »
0
Ciao
ho seguito il link e funziona, ho questo problema
all'utente visualizzo 3 tab per la navigazione
nel primo di questi tab ci sono delle informazioni visualizzate con TextView ed in più c'è un bottone
se l'utente preme sul bottone faccio vedere altre informazioni

Ecco il problema è questo: quando l'utente preme il bottone, faccio partire un'activity PippoActivity che mostra le informazioni extra, però PippoExtra non ha più i tre tab della navigazione

come faccio a far vedere i tre tab anche quando sono nell'activity PippoActivity ?

Quando l'utente preme sul bottone PippoActivity viene fatta partire con il seguente codice:

Codice (Java): [Seleziona]
Context context = getBaseContext();
Intent intent = new Intent(context, StationDetails.class);
startActivity(intent);

Secondo me questo è il problema, andrebbe invece fatta partire utilizzando qualche metodo del TabHost

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:TAB Layouts
« Risposta #11 il: 20 Ottobre 2010, 11:31:30 CEST »
0
Per rispondere alla mia domanda ho implementato il codice suggerito in questi due link

TICE: Experience - Multiple Android Activities in a TabActivity

http://blog.henriklarsentoft.com/2010/07/android-tabactivity-nested-activities/#comment-7

io ho sperimentato il primo e sembra funzionare



Offline Liunai

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Re:TAB Layouts
« Risposta #12 il: 07 Aprile 2011, 13:09:21 CEST »
0
Buongiorno, ho anche io una domanda relativa alle Tabs e volevo evitare di aprire un nuovo topic.

La domanda è questa: nell'esempio all'inizio del post, il layout delle varie Activity aperte da ogni tab è specificato in un singolo file XML (se non sbaglio). Posso fare in modo che ogni Activity specifichi un layout da un file diverso?

Esempio: in Main.java:

intent = new Intent().setClass(this, Abili.class);
spec = tabHost.newTabSpec("abili").setIndicator("Abili").setContent(intent);
 tabHost.addTab(spec);

e in Abili.java:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.abili);
}

dove abili.xml è il file con il layout.

E' possibile? Perchè io ho provato e mi dà errore quando testo l'app (mentre, se invece di questo creo - in Abili.java - una TextView e la passo a setContentView, allora funziona).
In teoria l'XML è corretto, ma se necessario posterò il codice anche di quello.

Grazie mille e complimenti! (:

Offline AndroidDev

  • Nuovo arrivato
  • *
  • Post: 2
  • Hell Yeah!
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S10
  • Sistema operativo:
    Ubuntu 18.04
Re:TAB Layouts
« Risposta #13 il: 22 Aprile 2013, 14:14:18 CEST »
0
Ciao a tutti ragazzi,
ho seguito l'esempio di andream1977 riguardo la creazione di tab, ma quando ho provato ad associare l'activity in questo modo:

Codice (Java): [Seleziona]
intent = new Intent().setClass(this, MyActivity.class);
tabHost.addTab(tabHost.newTabSpec("tabview1").setContent(R.id.tabview1)
                                .setIndicator(this.getString(R.string.tab1))).setContent(intent);

OGNI volta crasha. dicendomi NullPointerException, mentre se non inserisco le activity funge alla perfezione...

Grazie mille, sto IMPAZZENDO.