0

アプリに PreferenceFragment を実装するのに苦労しています。私の目標は、設定ビューを main_activity フラグメント コンテナーに置き換えて、同じナビゲーション ドロワー、アクション バーなどを維持できるようにすることです。

次のような Preference Fragment クラスを作成しました。

public class MadlibsSettings extends PreferenceFragment {

android.support.v7.app.ActionBar actionBar;
CheckBoxPreference themeSwitch;
ListPreference fontSize;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = super.onCreateView(inflater, container, savedInstanceState);
    view.setBackgroundColor(getResources().getColor(android.R.color.white));

    actionBar = (android.support.v7.app.ActionBar) ((MainActivity)getActivity()).getSupportActionBar();
    actionBar.setTitle("Settings");

    addPreferencesFromResource(R.layout.madlibs_settings);

    //fontSize = (ListPreference) findPreference("list");

    return view;
}
}

そして、 R.layout.madlibs_settings の私の設定は次のとおりです。

<PreferenceCategory android:title="PreferenceCategory A" >
    <CheckBoxPreference
        android:id="@+id/checkbox1"
        android:defaultValue="false"
        android:key="checkbox1"
        android:summary="Switches App Layout to Dark Theme"
        android:title="Darker Theme" />
</PreferenceCategory>
<PreferenceCategory android:title="PreferenceCategory B" >
    <ListPreference
        android:id="@+id/ListPreference"
        android:defaultValue="8"
        android:entries="@array/list"
        android:entryValues="@array/LValues"
        android:key="list"
        android:summary="Choose Font Size"
        android:title="Font Size" />
</PreferenceCategory>

</PreferenceScreen>

設定を膨らませてからharedpreferencesを使用して設定からデータにアクセスするために、メインアクティビティで何をすべきかよくわかりません。どんな助けでも素晴らしいでしょう、私は間違いなくフラグメントの新人です.

4

2 に答える 2

2

preferenceFragment は実際の Fragment であるため、Nav ドロワー内の他のフラグメントと同様に、FragmentTransation を使用して簡単に交換できます。onClick イベントなどで、次のようなものを使用して PreferenceFragment に移動します。

getFragmentManager().beginTransaction()
            .replace(R.id.fragmentContainer, new MadlibSettings())
            .commit();

ソース: http://developer.android.com/guide/topics/ui/settings.html#Fragment

そして、どこからでも設定にアクセスするには、次のコードで開始できるはずです。

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getContext());
String val1 = settings.getString("KEY", "default_value");
settings.putString("key", "new_value");

設定ファイルに加えて独自の設定ファイルを作成する場合は、次を使用します。

SharedPreferences settings = getContext().getSharedPreferences("pref_file_name", 0);
String val1 = settings.getString("KEY", "default_value");
settings.putString("KEY", "new_value");
于 2014-08-18T00:23:03.167 に答える