保存我的活动状态xamarin.android
本文关键字:android xamarin 活动状态 我的 保存 | 更新日期: 2023-09-27 18:15:23
我想保存这个活动的状态,当有人关闭应用程序。它只是包含一个ListActivity simplelistitemchecked…
namespace XamarinScanner
{
[Activity(Label = "@string/scanHistory", ScreenOrientation = ScreenOrientation.Portrait)]
public class ScanHistoryActivity : ListActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var codes = Intent.Extras.GetStringArrayList("Codes");
codes.ToList();
ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItemChecked, codes);
ListView lv = FindViewById<ListView>(Android.Resource.Id.List);
lv.ChoiceMode = ChoiceMode.Multiple;
foreach (var c in codes)
{
if (c.Contains("Success"))
{
int position = codes.IndexOf(c);
lv.SetItemChecked(position, true);
}
}
}
}
}
这是我保存我的状态为我的mainactivity,它似乎保留数据为我的listactivity和主活动时的背景。我想我只需要做同样的事情当应用程序被销毁…
protected override void OnSaveInstanceState(Bundle outState)'
{
outState.PutStringArrayList("Codes", _codes.ToArray());
base.OnSaveInstanceState(outState);
}
protected override void OnCreate(Bundle bundle)
{
Url = "http://10.0.0.103:4321/Scan";
if (bundle != null)
{
var c = bundle.GetStringArrayList("Codes");
instance state");
}
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);`
当用户关闭App时是什么意思?你是说当他关闭一会儿再打开它,还是当应用程序完全关闭时?
如果你指的是第二次,你应该使用OnDestroy来"保存"状态,并在下次加载OnCreate。您必须手动创建保存和加载过程(使用database?SharedPreferences?)这取决于你)
也可以在这里查看活动生命周期。
也总是张贴你已经尝试到目前为止,它不希望和确切的结果,你期望
在OnDestroy上存储值的一个简单方法是使用SharedPreferences:ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (Application.Context);
ISharedPreferencesEditor editor = prefs.Edit ();
editor.PutBoolean ("keyName", _bool);
// editor.Commit(); // applies changes synchronously on older APIs
editor.Apply(); // applies changes asynchronously on newer APIs
使用:
访问保存的值ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (Application.Context);
_bool = prefs.GetBoolean ("keyName");
_int = prefs.GetInt ("keyName");
_string = prefs.GetString ("keyName");