Autore Topic: TabWidget  (Letto 704 volte)

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
TabWidget
« il: 10 Ottobre 2011, 13:10:20 CEST »
0
Scusate ragazzi..
Ho cercato un pò in giro ma non ci sto capendo niente con questi tabWidget...

Io vorrei semplicemente realizzare un tabWidget con 3 tab, ognuno dei quali chiama una activity diversa.
Ho cercato ma non ho trovato niente di simile sul forum (molto probabilmente causa la mia influenza...)

Potete spiegarmi come funzionano e come si usano??

Grazie tante...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:TabWidget
« Risposta #1 il: 10 Ottobre 2011, 13:17:37 CEST »
0
Dai un occhio a questo:

Tabs3.java | Android Developers

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:TabWidget
« Risposta #2 il: 10 Ottobre 2011, 14:27:07 CEST »
0
Sto usando questo layout
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TabHost android:id="@+id/tabhost" 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:id="@android:id/tabcontent"
                        android:layout_width="fill_parent" android:layout_height="fill_parent"
                        android:paddingTop="65px">
                        <TextView android:id="@+id/tab_1" android:layout_width="fill_parent"
                        android:layout_height="fill_parent" android:text="This is the first tab!" />
                        <TextView android:id="@+id/tab_2"
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:text="Thi is the second tab!" />
                </FrameLayout>
        </TabHost>
</LinearLayout>

Però mi va in crash...

Questo è il java principale
Codice (Java): [Seleziona]
public class AndroidTabActivity extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final TabHost tabHost = getTabHost();

        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("list")
                .setContent(new Intent(this, activity2.class)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

        tabHost.addTab(tabHost.newTabSpec("tab2")
                .setIndicator("photo list")
                .setContent(new Intent(this, activity3.class)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
    }
}
e questo è parte dell'errore sul logCat
Codice: [Seleziona]
10-10 14:24:05.180: ERROR/AndroidRuntime(3222): FATAL EXCEPTION: main
10-10 14:24:05.180: ERROR/AndroidRuntime(3222): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.tab/android.tab.AndroidTabActivity}: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:TabWidget
« Risposta #3 il: 10 Ottobre 2011, 15:23:49 CEST »
0
Ok ragazzi..
Seguendo questo tutorial http://developer.android.com/guide/tutorials/views/hello-tabwidget.html funziona tutto...

Per associare una seconda attività ai vari Tab basta aggiungere
Codice (Java): [Seleziona]
         tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("TAB 1")
                .setContent(new Intent(this, activity2.class)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

Grazie..

Offline franluzzi

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
Re:TabWidget
« Risposta #4 il: 22 Dicembre 2011, 17:49:51 CET »
0
Potresti spiegarmi meglio la soluzione in quando a me continua a dare lo stesso errore?

Grazie mille

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:TabWidget
« Risposta #5 il: 22 Dicembre 2011, 17:56:10 CET »
0
Allora io ho seguito questi step:
1. Creati un file TabDirection.java con dentro il seguente codice:
Codice (Java): [Seleziona]
public class TabDirection extends TabActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                TabHost tabHost = getTabHost();

                tabHost.addTab(tabHost.newTabSpec("tab0").
                                setIndicator("Add", getResources().getDrawable(R.drawable.add)).
                                setContent(new Intent(getApplicationContext(), activity1.class)
                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY)));

                tabHost.addTab(tabHost.newTabSpec("tab1")
                                .setIndicator("Management", getResources().getDrawable(R.drawable.mng))
                                .setContent(new Intent(this, activity2.class)
                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY)));

                tabHost.addTab(tabHost.newTabSpec("tab2")
                                .setIndicator("Info", getResources().getDrawable(R.drawable.logo))
                                .setContent(new Intent(this, activity13.class)));                      
               
               tabHost.setCurrentTab(0);
        }
}

2. Aggiungi nel manifest questa activity:
Codice (XML): [Seleziona]
<activity android:name=".TabDirection" android:label="xxxx" >
                        <intent-filter>
                                <action android:name="android.intent.action.TABDIR" />
                                <category android:name="android.intent.category.DEFAULT" />
                        </intent-filter>
                </activity>


Prova così...

Offline franluzzi

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
Re:TabWidget
« Risposta #6 il: 22 Dicembre 2011, 18:09:20 CET »
0
L'ho rilanciato di nuovo e và!!! Strano ma vero!! :-)

Grazie mille