关闭活动时保存属性

本文关键字:保存 属性 活动 | 更新日期: 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");

    }

我有两个问题,如何在更改活动时保存这些属性,以及如何在后台传递这些属性?

有什么建议可以让我实现吗?

关闭活动时保存属性

你可以做两件事。

  1. 保存到SQLite
  2. 保存到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;才能使用"首选项"。