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!

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top