PreferenceFragment+ToolBar+AppcompatActivityというもしかしたらものすごく意味わからない実装をしたのでメモ。

・準備


レイアウトファイルでToolBarを実装するためにThemeのToolBarを非表示にする。
styles.xml
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
    </style>
</resources>



・実装

Fragmentの部分
SettingFragment.java
package numero.com.jp.myapplication;

import android.os.Bundle;
import android.preference.PreferenceFragment;

public class SettingFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
    }
}


Activityのレイアウトファイル
setting_main.xml
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:elevation="4dp"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary" />
    <FrameLayout
        android:id="@+id/frame"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_below="@id/toolbar"/>
</RelativeLayout>


Activityの部分
SettingActivity.java
package numero.com.jp.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;

public class SettingActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.setting_main);
        setSupportActionBar((Toolbar) findViewById(R.id.toolbar));

        getFragmentManager().beginTransaction().replace(R.id.frame, new SettingFragment()).commit();
    }
}


設定画面のレイアウトファイル
xml/settings
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="全般">
        <CheckBoxPreference
            android:key="value1"
            android:title="チェックボックス"
            android:summary="(説明)"
            android:defaultValue="false"/>
    </PreferenceCategory>
</PreferenceScreen>


設定画面のレイアウト等に関しては公式を参考にしてもらえればと思います。
image