2013-09-06 8 views
15

Возможно использование ActionBarActivity в сочетании с PreferenceActivity. В принципе, я хочу использовать следующий код:Использование PreferenceActivity и ActionBarActivity

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

Этот вопрос PreferenceActivity не содержит метод getSupportActionBar() и ActionBarActivity не содержит каких-либо методов управления и отображения предпочтений.

+0

можно что-то аналогичный. Посмотрите мое решение здесь: https://github.com/AndroidDeveloperLB/MaterialStuffLibrary –

ответ

7

Если вы готовы превратить ваш PreferenceActivity в PreferenceFragment есть реализация на основе поддержки -v4 Фрагмент:

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

Я использую его сам, и он отлично работает в сочетании с ActionBarActivity!

+0

можете ли вы добавить пример кода? Я загрузил его, изменил импорт из android.preference.PreferenceFragment в android.support.v4.preference.PreferenceFragment, и я вижу, что он добавил некоторые заголовки в середине экрана, но не ActionBar в верхней части – Gavriel

+0

. Он не добавляет это действие работы. К сожалению, у меня нет образца кода под рукой, но он должен работать аналогично: http://developer.android.com/reference/android/preference/PreferenceFragment.html – Ostkontentitan

+0

Нашел образец кода в этом ответе SO: http://stackoverflow.com/ a/26460937/3221253 – AndyDeveloper

3

ActionBarCompat функция еще не поддерживается.

How to add Action Bar from support library into PreferenceActivity?

ActionBar был добавлен в сотовом можно использовать следующий код:

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

Из новейшей библиотеки поддержки для Android 5.0 это не работает. Когда вы включаете Темы материала, не будет ActionBar, и getActionBar() всегда будет возвращать null, таким образом, будет исключение NullPointerException. – Zordid

+0

Точно, и это меня разозлило! –

2

Для некоторых людей необходимо использовать getSupportActionBar() с PreferenceActivity. Собран с Android 6

Объявите это в вашем классе расширяет PreferenceActivity

private AppCompatDelegate mDelegate; 

И добавить к этому:

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

и звоните ActionBar:

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

работает! отлично – Belial09