Android 1.5 Programmazione con TabHost e pulsanti
-
21-08-2019 - |
Domanda
Al momento sto provando l'Android 1.5 SDK e ho visto un paio di esempi su TabHost. Quello che sto cercando di fare è quello di utilizzare un pulsante diverso su ciascuna scheda per fare i suoi compiti.
Quello che ho cercato stava usando onClickListiner () e onClick (). Credo che questo è ciò che usano tutti gli sviluppatori, ma continuo a ricevere un'eccezione nulla sul LogCat ogni volta che si preme il pulsante. Anche io ho ogni layout XML in modo che io chiamo la scheda come: tab.add (... setContent (R.id.firstTabLayout))
firstTabLayout = layout for Button and TextView.
Quale sarebbe il modo migliore per far funzionare un tasto / TextView correttamente sotto il TabHost?
Soluzione
Non sono del tutto sicuro dove il tuo problema, ma questo è come ho impostato la mia attività a schede prima
layout.xml
<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">
<LinearLayout android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@android:id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@android:id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:id="@+id/tab3"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@android:id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>
Tab.java
public class InitialActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
TabHost th = getTabHost();
th.addTab(th.newTabSpec("tab_1").setIndicator("Tab1").setContent(R.id.tab1));
th.addTab(th.newTabSpec("tab_2").setIndicator("Tab2").setContent(R.id.tab2));
th.addTab(th.newTabSpec("tab_3").setIndicator("Tab3").setContent(R.id.tab3));
}
}
Quindi, si può semplicemente utilizzare findViewById () su eventuali pareri all'interno delle schede, o se ci sono nomi condivisi tra di loro, si può fare findViewById(R.id.tab1).findViewById(R.id.text)