关闭活动时保存属性
本文关键字:保存 属性 活动 | 更新日期: 2023-09-27 18:22:27
我有带有产品列表的活动,并将属性传递给Basket活动
产品列表活动中的代码:
zakazat.Click += delegate
{
var intent = new Intent(this, typeof(CartActivity));
intent.PutExtra ("title", (string)(firstitem ["post_title"]));
intent.PutExtra ("price", (string)(firstitem ["price"] + " грн"));
intent.PutExtra ("weight", (string)(firstitem ["weight"] + "г"));
StartActivity(intent);
接收篮子中的产品:
public void Display (){
LinearLayout display = FindViewById<LinearLayout> (Resource.Id.product1);
TextView productname = FindViewById<TextView> (Resource.Id.posttittle1);
TextView price = FindViewById<TextView> (Resource.Id.price1);
TextView weight = FindViewById<TextView> (Resource.Id.weight1);
price.Text = Intent.GetStringExtra("price");
productname.Text = Intent.GetStringExtra("title");
if (productname.Text == Intent.GetStringExtra ("title")) {
display.Visibility = ViewStates.Visible;
}
else {
display.Visibility = ViewStates.Gone;
}
weight.Text = Intent.GetStringExtra("weight");
}
我有两个问题,如何在更改活动时保存这些属性,以及如何在后台传递这些属性?
有什么建议可以让我实现吗?
你可以做两件事。
- 保存到SQLite
- 保存到SharedPreferences
如果您不想以这种速度依赖SQLite,那么您将需要使用选项#2,因为它更容易、快速地实现。
我们如何使用SharedPreferences?
首先,您必须在类上声明一个ISharedPreference。
public class YourActivity : Activity
{
private ISharedPreferences prefs;
}
接下来,您需要在onCreate方法中初始化prefs变量。
prefs = PreferenceManager.GetDefaultSharedPreferences(this);
然后,您可以将Intent附加项写入到首选项中,如下所示:
ISharedPreferencesEditor editor = prefs.Edit ();
editor.PutString ("price", Intent.GetStringExtra("price"));
editor.PutString ("title", Intent.GetStringExtra("title"));
editor.PutString ("weight", Intent.GetStringExtra("weight"));
editor.Apply ();
在编写了首选项之后,您希望访问里面的数据。你必须这样做:
string price = prefs.GetString("price", "0");
string title = prefs.GetString ("title" , "");
string weight = prefs.GetString ("weight" , "");
//second argument in GetString(arg1, arg2) means a default value given to the variable if it is null
这样,即使关闭"活动",您仍然可以检索SharedPreferences值。
需要注意的是,您需要添加using Android.Preferences;
才能使用"首选项"。