Visualizzazione stampabile
-
Problema con Tab Layout
Ho seguito i vari passi per creare un tab layout leggendoli dalla guida del sito ufficiale di android e sono sicuro di aver riportato tutto correttamente, ma se provo a visualizzare il layout del codice xml mi appare:
"NullPointerException:null"
Riporto qui il codice xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android: orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android: padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android: padding="5dp" />
</LinearLayout>
</TabHost>
Qualcuno può darmi una mano? Grazie in anticipo.
-
Ma il codice java com'è? Di solito se ci sono grossi problemi nel xml di layout il sistema trova il problema a compilation-time, quindi non dovresti riuscire neanche a chiudere lo sviluppo.
Se ottieni un NUllPointer runtime mi viene da dire che c'è qualche problema nella pare java...
-
Guarda ho fatto un'esempio per te:
Risultato finale:
http://img843.imageshack.us/img843/1669/schermataey.png
Uploaded with ImageShack.us
Layout xml:
codice:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:id="@+id/layout" 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:id="@android:id/tabcontent"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/primo" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="prima"
/>
<TextView android:id="@+id/secondo" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="seconda"
/>
</FrameLayout>
</LinearLayout>
</TabHost>
Codice Java:
codice:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
tabHost.setup();
tabHost.addTab(tabHost.newTabSpec("Primo").setContent(R.id.primo).setIndicator("Primo"));
tabHost.addTab(tabHost.newTabSpec("Secondo").setContent(R.id.secondo).setIndicator("Secondo"));
}
Questo è funzionante, da qui prendi e fai quello che vuoi fare.
-
Quote:
Originariamente inviato da
Cymon
Ma il codice java com'è?
Hai ragione scusa, me ne sono completamente dimenticato :D
public class MyActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, IllumActivity.class);
spec = tabHost.newTabSpec("Lights").setIndicator("Lights" ,res.getDrawable(R.drawable.ic_tab_luci)).setConte nt(intent);
tabHost.addTab(spec);
Poichè sono tre activity diverse ripeto le ultime tre righe per le altre due activity.E infine aggiungo:
tabHost.setCurrentTab(0);
-
Quote:
Originariamente inviato da
tavy
Questo è funzionante, da qui prendi e fai quello che vuoi fare.
Innanzitutto ti ringrazio per la risposta. Ora...mi piacerebbe molto darti ragione...ma purtroppo ho lo stesso errore di prima, anche inserendo il tuo codice (NullPointerException:null), quando cerco di visualizzare il layout del codice xml.
Hai qualche altro suggerimento? Grazie.
-
Sembra un bug del plugin eclipse di Android, almeno a leggere questa pagina linkata...
Prova a far partire l'emulatore senza passare da Eclipse e vedi se le cose vanno a posto...
-
Quote:
Originariamente inviato da
joaocominho
Innanzitutto ti ringrazio per la risposta. Ora...mi piacerebbe molto darti ragione...ma purtroppo ho lo stesso errore di prima, anche inserendo il tuo codice (NullPointerException:null), quando cerco di visualizzare il layout del codice xml.
Hai qualche altro suggerimento? Grazie.
Allora non so cosa dirti, hai la possibilità di provarlo su un'altro computer? O in una macchina virtuale? Se si, e se funziona allora ti consiglio di installare di nuovo Eclipse + Plugin android.
-
Quote:
Originariamente inviato da
joaocominho
Innanzitutto ti ringrazio per la risposta. Ora...mi piacerebbe molto darti ragione...ma purtroppo ho lo stesso errore di prima, anche inserendo il tuo codice (NullPointerException:null), quando cerco di visualizzare il layout del codice xml.
Hai qualche altro suggerimento? Grazie.
Potrei dire una cavolata visto che non ho mai lavorato con i Tabs, ma di solito ogni activity va dichiarata nell'AndroidManifest.xml
Controlla se non l'hai già fatto.
-
Quote:
Originariamente inviato da
Orochi
Potrei dire una cavolata visto che non ho mai lavorato con i Tabs, ma di solito ogni activity va dichiarata nell'AndroidManifest.xml
Controlla se non l'hai già fatto.
Si quello era ovvio, di solito quando un'activity non è dichiarata il programma lancia subito un'eccezione, diversa da quello che ha postato lui.