2015-11-19 5 views
1

У меня есть деятельность с перечнем продуктов и прохожу атрибуты в корзину деятельностиСохранить атрибуты когда близко активность

код в списке продуктов деятельности:

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"); 


    } 

У меня есть два вопроса: как сохранить эти атрибуты, когда я изменяю активность и как передавать эти атрибуты на фоне?

Любые предложения, как я могу это реализовать?

+0

Возможный дубликат [Как переносить данные из одной активности в другую в android] (http://stackoverflow.com/questions/20169993/how-to-transfer-data-from-one-activity-to-another- in-android) –

+0

Нет. Я осознал переход на другую деятельность. Мне нужно сохранить атрибуты в активности, как я писал в конце сообщения @ZahanSafallwa –

+0

, что вы подразумеваете под атрибутом save? хранить данные в файл как вещь ??? –

ответ

1

Есть две вещи, которые вы можете сделать.

  1. Сохранить в SQLite
  2. Сохранить в SharedPreferences.

Если вы не хотите полагаться на SQLite в этом темпе, вам нужно будет использовать опцию № 2, поскольку ее проще и быстрее реализовать.

Как мы используем SharedPreferences?

Во-первых, вам нужно объявить ISharedPreference для вашего класса.

public class YourActivity : Activity 
{ 
    private ISharedPreferences prefs; 
} 

Далее необходимо инициализировать переменную prefs в методе onCreate.

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; для использования настроек.

+0

Спасибо столько! –

Смежные вопросы