ユーザーが特定のオプションをオンまたはオフにするためにpreferenceScreen(チェックボックス)を使用するアプリがあります。xml ファイルを拡張する設定フラグメントは次のようになります。
public class BrandsFragment : PreferenceFragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
AddPreferencesFromResource (Resource.Menu.brandPrefs);
var prefs = PreferenceManager.GetDefaultSharedPreferences(this.Activity);
}
}
これは正常に機能し、設定を正常に変更できます。
ただし、メイン アクティビティ (フラグメントではない) の OnCreate メソッドから設定を取得する必要があります。
これは私が試したことです:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var prefs = PreferenceManager.GetDefaultSharedPreferences(this);
wantGeneral = prefs.GetBoolean ("checkbox_preference_general", true);
Console.WriteLine ("Pref is " + wantGeneral);
SetContentView(Resource.Layout.NavigationDrawer);
.......
}
ただし、「wantGeneral」設定は、チェックボックスがオンになっているかどうかに関係なく、常に true に戻ります。私のアクティビティから、設定をうまく取得していないことは明らかです。
アクティビティから設定を取得するにはどうすればよいですか?