关闭活动时保存属性

时间:2015-11-19 07:38:43

标签: c# android xamarin

我对产品列表有活动,并将属性传递给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 个答案:

答案 0 :(得分:1)

你可以做两件事。

  1. 保存到SQLite
  2. 保存到SharedPreferences。
  3. 如果您不想以这种速度依赖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;才能使用偏好设置。