2013-09-06 11 views
15

Czy można używać ActionBarActivity w połączeniu z PreferenceActivity. Zasadniczo chcę użyć następującego kodu:Używanie PreferenceActivity i ActionBarActivity

getSupportActionBar().setDisplayHomeAsUpEnabled(true); // Enables the "back" arrow 

Problem jest PreferenceActivity nie zawiera metodę getSupportActionBar() i ActionBarActivity nie zawiera żadnych metod zarządzania i wyświetlania preferencji.

+0

Jest możliwe, że coś podobny. Sprawdź moje rozwiązanie tutaj: https://github.com/AndroidDeveloperLB/MaterialStuffLibrary –

Odpowiedz

7

Jeśli są chętni, aby włączyć PreferenceActivity w PreferenceFragment jest implementacja oparta na wsparciu -v4 Fragment:

https://github.com/kolavar/android-support-v4-preferencefragment

Używam go samodzielnie i działa dobrze w połączeniu z ActionBarActivity!

+0

możesz dodać przykład kodu? Pobrałem go, zmieniłem import z android.preference.PreferenceFragment na android.support.v4.preference.PreferenceFragment i widzę, że dodano kilka nagłówków na środku ekranu, ale nie ActionBar na górze – Gavriel

+0

Nie dodaje actionbar to zadanie aktywności. Niestety nie mam pod ręką samplecodu, ale powinien działać podobnie do: http://developer.android.com/reference/android/preference/PreferenceFragment.html – Ostkontentitan

+0

Znalazłem przykładowy kod w tej odpowiedzi SO: http://stackoverflow.com/ a/26460937/3221253 – AndyDeveloper

3

ActionBarCompat ta funkcja nie jest jeszcze obsługiwana.

How to add Action Bar from support library into PreferenceActivity?

ActionBar został dodany w plaster miodu można użyć następującego kodu:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
+3

Z najnowszej biblioteki pomocy dla Androida 5.0 to już nie działa. Po włączeniu kompozycji materiałowych nie będzie żadnego paska akcji, a funkcja getActionBar() zawsze zwróci wartość null, dlatego wystąpi wyjątek NullPointerException. – Zordid

+0

Dokładnie, i wkurza mnie! –

2

Niektórzy ludzie chcą używać getSupportActionBar() z PreferenceActivity. Zestawione z Androida 6

zadeklarować ten w swojej klasie rozciąga PreferenceActivity

private AppCompatDelegate mDelegate; 

i dodać:

private AppCompatDelegate getDelegate() { 
    if (mDelegate == null) { 
    mDelegate = AppCompatDelegate.create(this, null); 
    } 
    return mDelegate; 
} 

i skontaktować się actionbar:

android.support.v7.app.ActionBar actionBar = getDelegate().getSupportActionBar(); 
+0

działa! doskonały – Belial09

Powiązane problemy