Wechseln des ActionBar Titles bei ViewPager

  • Hallo liebes Forum,


    ich bin etwas neu in der Android-Programmierung, versteh aber schon einiges :) Ich habe dieses Forum per Google immer wieder gefunden und es hat mir bei manchen Problemen geholfen ! Nun habe ich aber ein etwas kompliziertes Problem.Ich arbeite zurzeit an einem schön designten Audio Player für Android.Er sieht auch schön aus ;) Ich habe das sogenannte "MainMenu" mit ViewPages ausgestattet das heisst in der MainActivity muss man nur von links nach rechts ziehen um zum Beispiel Alben, Songs oder Interpreten anzuzeigen.Leider haben diese Pages keinen Header, das heisst man sieht im ersten Moment nicht wo man sich gerade befindet.Dies will ich ändern und zwar so das der ActionBar Titel sich zu dem Fragment anpasst.Bedeutet im Klartext wenn ich mich auf dem genres_fragment_layout.xml bzw. GenresFragment.java befinde soll sich der ActionBar Titel zu "Genres" ändern.Ich habe mich bereits durch Stackoverflow und Google gekämpft aber nichts brauchbares gefunden und wenn dann wirft es Fehler.Nun frage ich euch wie so etwas geht und wie ich das am besten Lösen kann.Über die XML geht es nicht habe es da schon versucht nur der Aufbau sieht so aus:


    HTML
    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="#fff0"    android:orientation="vertical" >    </LinearLayout>


    Hier gibt es die Stelle android:label="" nicht.Also frage ich mich wie ich es ansonsten machen kann ?


    Liebe Grüße vom Rhein,
    Jan

  • Hallo,


    ich verstehe leider nicht ganz genau wie du das meinst soll ich nun für jedes Fragment einen eigenen Adapter machen oder wie meinst Du das ? Hoffe du kannst es mir erklären ! :)


    Gruß,
    Jan

  • Es reicht, wenn Du für den ViewPager einen eigenen Adapter baust, der die Methode implementiert.


    Allerdings sehe ich nicht, wo das Ganze dann landen sollte.
    Schließlich hast Du ja keinerlei Texte oberhalb Deiner Fragmente.


    In dem Fall könntest Du onPageSelected(int) Deiner Activity überschreiben.
    (Davon ausgehend, dass Du 4.0+ only entwickelst.)

    Java
    @Override
            public void onPageSelected(int position) {
                mActionBar.setTitle(pagesAdapter.getTitle(position));
            }


    Zusammengeklaubt von:
    http://developer.android.com/r…rt/v4/view/ViewPager.html
    http://developer.android.com/r…ndroid/app/ActionBar.html

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Sorry für den Push, da ich jedes Fragment einzeln habe hab ichs nun so geregelt:


    Java
    ActionBar actBar = getActivity().getActionBar();
    		actBar.setSubtitle("hello");


    Damit wäre das Thema erledigt

  • Ja, außer, Du nutzt es auf 2.x
    Dann bekommst Du eine NullPointerException, weil getActivity().getActionBar() ein null zurückliefert.


    Solange Du aber auf 3.0+ bleibst: keine Probleme.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Denk' daran, dass mehrere (bis zu drei) Fragmente gleichzeitig existieren können, auch wenn diese nicht sichtbar sind.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!