1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. gurkenprinz, 17.06.2010 #1
    gurkenprinz

    gurkenprinz Threadstarter Neuer Benutzer

    Hallo Leute!

    Weiß jemand wie ich einer TabActivity einen selbst erstellten Header zuweise, welcher dann idealerweise über den Tabs platziert ist. Der Header sollte aus Text und einer Hintergrundgrafik bestehen.

    Habe es bereits auf die Art probiert in der onCreate methode aber leider wird mir dann nur der normale graue AppHead Header angezeigt ohne Text.

    Code:
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.header);
    Hat jemand eine Idee wie ich das hinkriegen kann ?

    Besten Dank !
    lg gurkenprinz
     
  2. Fr4gg0r, 17.06.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Also ohne groß rumzubasteln kannst du der grauen Titelbar zumindest einen Text und ein Icon (Bild) zuweisen..
     
  3. gurkenprinz, 17.06.2010 #3
    gurkenprinz

    gurkenprinz Threadstarter Neuer Benutzer

    Danke für die Antwort aber leider reicht das nicht. Die graue Titlebar soll kein Icon enthalten sondern komplett durch eine Grafik ersetzt werden.
     
  4. Fr4gg0r, 17.06.2010 #4
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Dann wirst du wohl die Titlebar ausblenden und stattdessen eine eigene View einblenden lassen müssen.
     
  5. gurkenprinz, 17.06.2010 #5
    gurkenprinz

    gurkenprinz Threadstarter Neuer Benutzer

    schon klar ...
    und wie stelle ich das an wenn diese eigene View über den Tabs stehen soll ?

    In der TabActivity sind ja die Tabs standardmäßig ganz oben. Wenn ich eine eigene View einbinde ist diese unter den Tabs platziert.
     
  6. Fr4gg0r, 17.06.2010 #6
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Den Tabhost per xml laden, diesen in ein LinearLayout wrappen und darüber eine View packen? Also zuerst die View in das Layout hinzufügen und dann den Tabhost... oder gleich so im xml definieren.
    :confused:
     
  7. MichaelS, 17.06.2010 #7
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    wäre das leben nicht zu einfach, wenn es immer so einfach wäre? :p

    bzw: ich mag xml nicht :p ich würds im code machen ;D
     
  8. Fr4gg0r, 17.06.2010 #8
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    dann erzeug ein LinearLayout im Code, dieses nimmt zuerst dein im Code erzeugte CustomView und dand dein im Code erzeugte TabHost auf?
    Hierbei müsstest du wohl von Activity erben.. müsste aber so auch möglich sein Tabs zu erzeugen, schließlich kann ich bei einer normalen Activity auch auf Tabs per xml zugreifen.
     
  9. gurkenprinz, 18.06.2010 #9
    gurkenprinz

    gurkenprinz Threadstarter Neuer Benutzer

    Hätte es jetzt mal so probiert:

    Code:
    public class Portal extends Activity 
    {
        public void onCreate(Bundle savedInstanceState) 
        {
            
            super.onCreate(savedInstanceState);
            this.setFullscreen();
            LinearLayout ll = new LinearLayout(this);
            ImageView header = new ImageView(this);
            header.setBackgroundResource(R.drawable.header);
            ll.addView(header);
            TabHost tabHost = new TabHost(this);
            ll.addView(tabHost);
            
            tabHost.addTab(tabHost.newTabSpec("Aktuell")  //--> in dieser Zeile NullpointerException :(
                    .setIndicator("Aktuell")
                    .setContent(new Intent(this,Portal_News.class)));
            tabHost.addTab(tabHost.newTabSpec("Favoriten")
                    .setIndicator("Favoriten")
                    .setContent(new Intent(this,Portal_Favoriten.class)));
            tabHost.addTab(tabHost.newTabSpec("Kanäle")
                    .setIndicator("Kanäle")
                    .setContent(new Intent(this,Portal_Kanaele.class)));
            
        }
    }
    
    Leider gibts eine NullPointerException wenn ich zum ersten mal einen Tab hinzufügen will. Und dabei ist egal ob ich von Activity oder TabActivity erbe.

    Dann hab ich es noch auf die Methode probiert:

    Code:
    public class Portal extends TabActivity 
    {
        public void onCreate(Bundle savedInstanceState) 
        {
            
            super.onCreate(savedInstanceState);
            this.setFullscreen();
            LinearLayout ll = new LinearLayout(this);
            ImageView header = new ImageView(this);
            header.setBackgroundResource(R.drawable.header);
            ll.addView(header);
            TabHost tabHost = this.getTabHost();
            ll.addView(tabHost);   //--> The specified child already has a Parent
            
            tabHost.addTab(tabHost.newTabSpec("Aktuell")
                    .setIndicator("Aktuell")
                    .setContent(new Intent(this,Portal_News.class)));
            tabHost.addTab(tabHost.newTabSpec("Favoriten")
                    .setIndicator("Favoriten")
                    .setContent(new Intent(this,Portal_Favoriten.class)));
            tabHost.addTab(tabHost.newTabSpec("Kanäle")
                    .setIndicator("Kanäle")
                    .setContent(new Intent(this,Portal_Kanaele.class)));
            
        }
        
    Hier schmeißt er mir in der gekennzeichneten Zeile eine IllegalStateException mit der angegebenen Beschreibung.
     
    Zuletzt bearbeitet: 18.06.2010
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Logdateien der eigenen App Android App Entwicklung 15.06.2017
[ERLEDIGT] Der Weg zur ersten eigenen App Android App Entwicklung 26.03.2017
[ERLEDIGT] App stürzt neuerdings beim anzeigen des eigenen Standorts ab Android App Entwicklung 19.03.2017
[ERLEDIGT] Jedem Benutzer eine eigene ID zuweisen? Android App Entwicklung 16.03.2017
Datenbank- Zugriff über ContentProvider/Resolver oder direkt von eigener App aus? Android App Entwicklung 27.11.2016
Eigene App - Darf man Library benutzen Android App Entwicklung 18.08.2016
Du betrachtest das Thema "Eigener Header in TabActivity" im Forum "Android App Entwicklung",