Impossibile ottenere viste diverse nelle schede
Domanda
Ho un'app con 2 schede, la prima è un elenco e la seconda che sto cercando di creare un TextView. Il problema è che non ho idea di come far apparire TextView. ListView funziona, ma non riesco affatto a ottenere nulla sul TextView. Ho provato a usare Hello, World per provare a lavorare con il testo nella scheda, ma non riesco a capirlo.
La mia sezione Main.xml con Tabwidget sembra questo:
<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">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/itemlist" />
<TextView
android:id="@+id/HelloAndroid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
ListView viene utilizzato sul file Java con il codice Mtabhost,
TabHost mTabHost = getTabHost();
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Answer").setContent(R.id.itemlist));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Ask").setContent(R.id.HelloAndroid));
mTabHost.setCurrentTab(0);
}
TextView si trova su un file diverso chiamato helloandroid.java e il codice sembra:
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
Come posso aggiustarlo in modo che la 2a scheda visualizza il testo di esempio? Grazie!
Soluzione
Se ho capito correttamente, vuoi visualizzare l'attività helloandroid come contenuto della seconda scheda. Se ho ragione, invece di questo:
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Ask").setContent(R.id.HelloAndroid));
Dovresti chiamarlo:
Intent i = new Intent(this, HelloAndroid.class);
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Ask").setContent(i));
Ma devi tenere presente che la tua attività Helloandroid non ha nulla in comune con TextView nel tuo file di layout. Quindi probabilmente sarebbe meglio non impostare l'attività come contenuto di scheda ma modificare il valore della vista di testo dal file di layout.
Ps. Ricorda di mettere la tua attività helloandroid su manifest.xml