Kann keine Aktionsleiste in Fragmentklasse bekommen

Ich habe eine Aktivität mit drei Fragmentklassen in ihr. Ich bekomme einen Fehler beim Versuch, den Action-Bar-Titel von innen zu wechseln. Wenn ich versuche, die Klassen nur öffentlich und nicht öffentlich zu machen, bekomme ich einen Fehler, wenn ich versuche, diese Klasse zu starten. Es sollte ziemlich klar sein, dass der Code für Präferenzen ist, obwohl das nichts ändern sollte. Hier ist der Code:

package com.simon.wikiics; import android.preference.*; import android.os.*; import java.util.*; public class MainSettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.headers, target); } //If I don't make the classes static my app force closes when I try to start them public static class NavigationSettingsActivity extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.navigation); //The getActionBar() is what is giving me the error getActionBar().setTitle("Navigation"); } } public static class InterfaceSettingsActivity extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.interf); //The getActionBar() is what is giving me the error getActionBar().setTitle("Interface"); } } public static class OtherSettingsActivity extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.other); //The getActionBar() is what is giving me the error getActionBar().setTitle("Other"); } } } 

  • Android / Java: Zugriff auf das gleiche SQLite-DB-Objekt aus mehreren Aktivitäten
  • Wie kann ich von einer anderen Klasse auf gespeicherte Werte einer Bean zugreifen
  • Auflistung des Herstellers Uhr / Alarmpaket und Klassenname, bitte hinzufügen
  • Wie kann ich eine neue Android-Aktivität mit einem String starten?
  • Wer bietet die Implementierung (en) der PackageManager-Klasse?
  • Wie funktioniert eine '.class'-Eigenschaft?
  • Rufen Sie eine öffentliche Methode in der Aktivitätsklasse aus einer anderen Klasse auf?
  • Wie registriere ich Anwendungsklasse in meiner Manifestdatei
  • 5 Solutions collect form web for “Kann keine Aktionsleiste in Fragmentklasse bekommen”

    Eine statische Klasse kann keine privaten Felder einer anderen Klasse sehen. Du musst getActivity().getActionBar() , um es abzurufen.

    @Robert Estivil Wenn Sie ActionBarActivity dann verwenden Sie diese:

     actionBar = ((ActionBarActivity)getActivity()).getSupportActionBar(); 

    Obwohl ich hier spät bin. Ich fand arul's Antwort perfekt, aber jetzt ActionbarActivity ist veraltet, so geringfügige Änderung an dieser Antwort wird den Job beenden:

     ActionBar actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar(); 

    Mit AppCompatActivity ist es ratsam, in die Toolbar anstelle der Aktionsleiste zu wechseln, aber wenn du es nicht tust, dann benutze diese, um eine Instanz von Aktionsleiste zu erhalten.

     ((AppCompatActivity )getActivity()).getSupportActionBar(); 

    Wenn du SherlokActionBar benutzt hast, kannst du deine Aktionsleiste mit anrufen

     ActionBar mActionBar = ((SherlockFragmentActivity) getActivity()).getSupportActionBar(); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.