SharedPreferences
書き込みと読み取りの間に再展開していますか? これにより、多くの場合、SharedPreferences
.
私はそれらをテストしたところ、2つの間で正常に動作しますActivities
:
WritePrefsActivity.cs
using Android.App;
using Android.Content;
using Android.Widget;
using Android.OS;
namespace Derrrp
{
[Activity (Label = "Derrrp", MainLauncher = true)]
public class WritePrefsActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Write);
var prefs = Application.Context.GetSharedPreferences("MySharedPrefs", FileCreationMode.Private);
var prefsEditor = prefs.Edit();
var ed = FindViewById<EditText>(Resource.Id.editText1);
ed.AfterTextChanged += (sender, e) => {
prefsEditor.PutString("MyPref", e.Editable.ToString());
prefsEditor.Commit();
};
Button button = FindViewById<Button> (Resource.Id.myButton);
button.Click += delegate {
var intent = new Intent(this, typeof(ReadPrefsActivity));
StartActivity(intent);
};
}
}
}
ReadPrefsActivity.cs
using Android.App;
using Android.Content;
using Android.OS;
using Android.Widget;
namespace Derrrp
{
[Activity (Label = "ReadPrefsActivity")]
public class ReadPrefsActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.Read);
var tv = FindViewById<TextView>(Resource.Id.myTextView);
var button = FindViewById<Button>(Resource.Id.myButton);
var prefs = Application.Context.GetSharedPreferences("MySharedPrefs", FileCreationMode.Private);
button.Click += (sender, e) => {
tv.Text = prefs.GetString("MyPref", "");
};
}
}
}
は、任意のdefValue
ものに設定できます。これは、取得しようとしている設定が空の場合に選択される値です。
注:秘密情報を保存するために使用FileCreationMode.Private
している場合は、暗号化など、アプリケーションでのみ読み取り可能にするものを使用することをお勧めします。