Hallo, ich habe zwei TabHost
s in der Activity
hinzugefügt und es funktioniert gut. Ich habe eine andere XML-Datei mit ListView
hinzugefügt und in der Activity
aufgerufen, wo ich die Tabhost
verwende. Es gibt Fehler wie erwartet, aber ich habe viel versucht, konnte es aber nicht lösen. Könnte mir jemand eine Idee dazu geben, wie man ListView
und TabHost
beide in einem Activity
verwaltet? Ich habe keinen Code geschrieben, da er hauptsächlich aus Tutorials besteht. Jede Hilfe wäre willkommen. Vielen Dank. schwerwiegender Fehler ist „Ihre Inhalte ein TabHost
Attribut, dessen ID haben muss, ist‚android.R.id.tabhost‘“Listview auf Rleft Seite und Tabhost auf der rechten Seite mit 20:80 Bildschirm teilen Verhältnis
5
A
Antwort
0
Probenaktivität mit Tabs und Listviews mit Karo Artikel:
ich unten geschrieben eine Probenaktivität, die eine TabHost
enthält, die 3 Tabs
und zwei ListView
, eine in jeder tab1
und tab3
aufweist. Ich verwende eine ArrayList
, um meine ArrayAdapter
zu initialisieren, von der ich meine ListView
verknüpfen kann. Ich füge dann Elemente zum tab3ListView
hinzu, nachdem es über seine ArrayList
, tab3List
eingerichtet wurde. Beachten Sie, dass die Elemente von tab3ListView über ein entsprechendes Kontrollkästchen verfügen. Beachten Sie, dass heutzutage einige Leute ActionBar.Tabs
als TabHost
bevorzugen, aber ich finde diesen Weg einfacher.
XML-Datei:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabHost
android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:layout_marginBottom="-4dp"
android:layout_weight="0" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
android:layout_weight="1">
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/tab1List"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fastScrollEnabled="true"></ListView>
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/tab2Edit1"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:hint="Enter text here"/>
</LinearLayout>
<LinearLayout
android:id="@+id/tab3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ListView
android:id="@+id/tab3List"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fastScrollEnabled="true"></ListView>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
Hauptaktivität:
public class MainActivity extends Activity{
// TabHost
TabHost th;
LinearLayout tab1, tab2, tab3;
// ListView
ListView tab1ListView, tab3ListView;
// String list
String stringList[] = {"Paris", "Washington", "Amsterdam", "London", "Bale", "Madrid",
"Zurich", "Munich", "Berlin", "Milan", "Rome", "Turin", "Lyon", "Marseille"};
// Adapters
ArrayList<String> tab1List, tab3List;
ArrayAdapter<String> tab1Adapter, tab3Adapter;
// Others
EditText tab2Edit1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// Initialize Layout
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Initialize Tabs
th = (TabHost) findViewById(R.id.tabhost);
th.setup();
// Tab1
TabSpec spec1 = th.newTabSpec("tag1");
spec1.setContent(R.id.tab1);
spec1.setIndicator("Tab 1");
th.addTab(spec1);
// Tab2
TabSpec spec2 = th.newTabSpec("tag2");
spec2.setContent(R.id.tab2);
spec2.setIndicator("Tab 2");
th.addTab(spec2);
// Tab3
TabSpec spec3 = th.newTabSpec("tag3");
spec3.setContent(R.id.tab3);
spec3.setIndicator("Tab 3");
th.addTab(spec3);
//Initialize Adapter and ListView from Tab1
tab1ListView = (ListView) findViewById(R.id.tab1List);
tab2Edit1 = (EditText) findViewById(R.id.tab2Edit1);
tab1List = new ArrayList<String>(Arrays.asList(stringList));
tab1Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, tab1List);
tab1ListView.setAdapter(tab1Adapter);
//Initialize Adapter and ListView from Tab3
tab3ListView = (ListView) findViewById(R.id.tab3List);
tab3List = new ArrayList<String>(Arrays.asList(stringList));
tab3Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, tab3List);
tab3ListView.setAdapter(tab3Adapter);
tab3ListView.setFocusable(false);
tab3ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
// Modify ListView: modify ArrayList and call notifyDataSetChanged() from corresponding adapter
tab3List.add(0,"New item at location 0");
tab3List.add(3,"New item at location 3");
tab3List.add("New item at location end");
tab3Adapter.notifyDataSetChanged();
tab3ListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// Set what happenss when you check or uncheck an item here
}
});
}
Verwandte Themen
- 1. Seitennummerierung auf der rechten Seite
- 2. Flexbox rechten Platz auf der rechten Seite
- 3. Menü auf der rechten Seite?
- 4. NSTextField mit "Padding" auf der rechten Seite
- 5. NSPredicate mit Schlüsselpfad auf der rechten Seite
- 6. Master Detail Seite auf der rechten Seite mit Xamarin.Forms
- 7. einen Knopf auf der rechten Seite in einer Navigationsleiste ausrichten einen Rand auf der rechten Seite
- 8. Boostrap - Form-Inline mit Label auf der linken Seite und Eingabe auf der rechten Seite
- 9. LinearLayout mit TextView auf der linken Seite und RadioButton auf der rechten Seite?
- 10. Whitespace auf der rechten Seite der Website
- 11. Bootstrap SideNav auf der rechten Seite
- 12. Sublime Sidebar auf der rechten Seite
- 13. Textausrichtung auf der rechten Seite einstellen
- 14. Bootstrap-Input-Addon auf der rechten Seite
- 15. Leerzeichen auf der rechten Seite meiner Webseite
- 16. iDangerous Swiper Paginierung auf der rechten Seite
- 17. Big Margin auf der rechten Seite
- 18. align li Elemente auf der rechten Seite
- 19. Extra graues Panel auf der rechten Seite
- 20. Seite wird nach Javascript auf der rechten Seite abgeschnitten
- 21. Dicker Rand auf der rechten Seite und auf der linken Seite
- 22. Feste Breite div auf der linken Seite und Disqus auf der rechten Seite
- 23. Menü auf der rechten Seite und Logo auf der linken Seite in einer halbtransparenten Navigationsleiste
- 24. Wie behalte ich mein Bild auf der linken Seite und meinen Inhalt auf der rechten Seite?
- 25. TabHost nicht auf dem Bildschirm
- 26. Firefox druckt nur die erste Seite und schneidet die Seite auf der rechten Seite
- 27. MeasureString() puffert den Text auf der linken und rechten Seite
- 28. Responsive Akkordeon mit Daten auf der rechten Seite
- 29. Ausrichten Menüpunkt auf Navigation auf der rechten Seite in Android
- 30. Sticky div auf der linken Seite, scroll auf der rechten Seite
ja, die Fehler selbst zu erklären, dass Ihre TabHost die id "TabHost" haben muss. Wenn Sie Diff-ID in der Layout-Datei angegeben haben, stürzt es ab. – akkilis
Ja, das habe ich verstanden, und die ID wie folgt gesetzt, ich hoffe, ich bin richtig Android: id = "@ android: id/tabhost" –