2017-09-29 16 views
1

私はxamarinに新しいですし、私はそれの状態をオフにするには、チェックボックスのリセット閉じたときので、アプリを閉じても、私のチェックボックスの状態を保存しようとしています...また..保存]チェックボックスの状態アンドロイドxamarin

変更されたイメージはリセットされます..両方を保存する方法はありますか?

protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

     SetContentView(Resource.Layout.layout1); 

     var seletor = FindViewById<CheckBox>(Resource.Id.checkBox1); 
     var imagem = FindViewById<ImageView>(Resource.Id.imageView1); 

     seletor.Click += (o, e) => { 
      if (seletor.Checked) 
       imagem.SetImageResource(Resource.Drawable.estado1); 

      else 
       imagem.SetImageResource(Resource.Drawable.estado2); 

     }; 
    } 

答えて

0

環境設定を使用しようとしましたか? OnCloseの選択オプションHow to save user settings

ストアまたは一時停止...とonResume /読み込み時に同様

何か取得:

は、次のことを確認したリンクのように

// Function called from OnDestroy 
protected void saveset(){ 

    //store 
    var prefs = Application.Context.GetSharedPreferences("MyApp", FileCreationMode.Private); 
    var prefEditor = prefs.Edit(); 
    prefEditor.PutString("PrefName", "Some value"); 
    prefEditor.Commit(); 

} 

// Function called from OnCreate 
protected void retrieveset() 
{ 
    //retreive 
    var prefs = Application.Context.GetSharedPreferences("MyApp", FileCreationMode.Private);    
    var somePref = prefs.GetString("PrefName", null); 

    //Show a toast 
    RunOnUiThread(() => Toast.MakeText(this, somePref, ToastLength.Long).Show()); 

} 

を。

もちろん、ニーズに合わせてチェックボックスの値を取得/入力する必要があります。

必要に応じて、ある種のdbを実装して、同じメカニズムを使用して設定を保持したり取得したりすることもできます。

これは通常、私は店の設定に使用して、私はこれがないチェックボックスのために..私は1つのアプリで同じ動作を使用している方法の例である

「記憶」する必要がある値を保持するものです。あなたはそれがどのように機能するか見ることができます。コードを削除しましたが、良い例になるはずです。

[Activity(Label = "@string/ApplicationName", 
     Icon = "@drawable/Icon")] 
    public class PersonalDetailsActivity : Activity 
    { 
     ... 
     private ISharedPreferencesEditor prefEditor; 
     private ISharedPreferences preferences; 
     ... 

     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 

      SetContentView(Resource.Layout.PersonalDetailView); 

      preferences = Application.Context.GetSharedPreferences("AppName", FileCreationMode.Private); 


      PopulatePersistedData(); 
     } 

     private void PopulatePersistedData() 
     { 
      myId = preferences.GetInt(nameof(myData.Id), 0); 

      name.Text = preferences.GetString(nameof(myData.Name), null); 
      address.Text = preferences.GetString(nameof(myData.Address), null); 
      city.Text = preferences.GetString(nameof(myData.City), null); 
      county.Text = preferences.GetString(nameof(myData.County), null); 
      emailAddress.Text = preferences.GetString(nameof(myData.Email), null); 
      phoneNumber.Text = preferences.GetString(nameof(myData.PhoneNumber), null); 
      bio.Text = preferences.GetString(nameof(myData.Bio), null); 
      rating.Rating = 5; 

     } 

     private void SaveButton_Click(object sender, EventArgs e) 
     { 
      prefEditor = preferences.Edit(); 

      myData = new Citizen(); 

      myData.Name = name.Text; 
      myData.Address = address.Text; 
      myData.City = city.Text; 
      myData.County = county.Text; 
      myData.Email = emailAddress.Text; 
      myData.PhoneNumber = phoneNumber.Text; 
      myData.Bio = bio.Text; 

      prefEditor.PutInt(nameof(myData.Id), myId); 
      prefEditor.PutString(nameof(myData.Name), myData.Name); 
      prefEditor.PutString(nameof(myData.Address), myData.Address); 
      prefEditor.PutString(nameof(myData.City), myData.City); 
      prefEditor.PutString(nameof(myData.County), myData.County); 
      prefEditor.PutString(nameof(myData.Email), myData.Email); 
      prefEditor.PutString(nameof(myData.PhoneNumber), myData.PhoneNumber); 
      prefEditor.PutString(nameof(myData.Bio), myData.Bio); 

      prefEditor.Apply(); 
      prefEditor.Commit(); 

      var intent = new Intent(); 
      intent.PutExtra("CitizenName", name.Text); 

      SetResult(Result.Ok, intent); 
      this.Finish(); 
     } 
    } 
+0

私はこのコードを自分の使い方に適応させる方法を知っていません。 –

+0

基本的には、チェックボックスを変更してPrefs.Put、onResume、prefs.Getを使用すると、onloadのprefsインスタンスを作成します。 – rmjoia

+0

を参照してください。しかし、どのように "onClose" –

関連する問題