Wechseln des ActionBar Titles bei ViewPager

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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-Quellcode

    1. <?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" >
    2. </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

    :Android: + :Android: = :love:
  • 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-Quellcode

    1. @Override
    2. public void onPageSelected(int position) {
    3. mActionBar.setTitle(pagesAdapter.getTitle(position));
    4. }


    Zusammengeklaubt von:
    developer.android.com/referenc…rt/v4/view/ViewPager.html
    developer.android.com/reference/android/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!«
  • 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!«