小编Vin*_*pré的帖子

使用ActionBar Sherlock的首选项屏幕

我正在使用Android应用程序ActionBarSherlock.我的问题是制作首选屏幕.在onBuildHeader()对方法SherlockPreferenceActivity类nerver调用.

这是我的代码

preference_headers.xml

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
    android:fragment="package.fragments.MyPreferenceFragment"
    android:icon="@drawable/bulle"
    android:summary="An example of some preferences."
    android:title="title" />

</preference-headers>
Run Code Online (Sandbox Code Playgroud)

的preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/options" >

    <PreferenceCategory>
        <SwitchPreference
            android:id="@+id/cb_notif"
            android:defaultValue="false"
            android:key="com.vincent.HTC_Dev.pref.notif"
            android:summaryOff="@string/notifications_off"
            android:summaryOn="@string/notifications_on"
            android:title="@string/notifications" />
    </PreferenceCategory>

</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

MyPreferenceActivity

public class MyPreferenceActivity extends SherlockPreferenceActivity {


    @Override
    public void onBuildHeaders(List<Header> target) {
        super.onBuildHeaders(target);

        loadHeadersFromResource(R.xml.preference_headers, target);
    }

}
Run Code Online (Sandbox Code Playgroud)

MyPreferenceFragment

public class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

android preferences actionbarsherlock

39
推荐指数
2
解决办法
1万
查看次数

标签 统计

actionbarsherlock ×1

android ×1

preferences ×1