Uzmanlar, kullanarak UITableView Durum Kontrol kaydetXamarin.iOS - NSUserDefaults
Ben bir masa ve Xamarin.iOS içinde NSUserDefaults içinde masanın denetlenen durumunu kaydetmek istediğiniz kadar lütfen aşağıya bakın. NSUserDefaults (data.Selected = true) içinde kontrol edilen durumu kaydetmeye nasıl devam ederdiniz? İdeal olarak, istediğim, kontrol edilen her hücreden sonra, bu değeri NSUserDefaults'a kaydetmek istiyorum. Ardından, kullanıcılar uygulamayı sonlandırırsa, uygulamayı sonlandırmadan önce seçtikleri değerler yüklenir. Herhangi bir yardım büyük takdir edilecektir! Bu biraz sert görünüyor için NSUserDefaults kullanarak Ancak
// Store
bool value = data.Selected;
string key = string.Format("TableName{0}",indexPath.Row); // Some unique name
NSUserDefaults.StandardUserDefaults.SetBool (value, key);
// Fetch
bool checked = NSUserDefaults.StandardUserDefaults.BoolForKey (key);
: NSUserDefaults dan/oldukça kolay bir boolean getirilirken/
namespace Project
{
public class TableSource : UITableViewSource
{
public readonly static string cellIdentifier = "cellID";
readonly Model _model;
public TableSource(Model source)
{
_model = source;
}
public override nint NumberOfSections(UITableView tableView)
{
return 1;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var value = _model[indexPath.Row];
var cell = tableView.DequeueReusableCell (cellIdentifier) ?? new UITableViewCell (UITableViewCellStyle.Default, cellIdentifier) ;
cell.TextLabel.Text = value.Name;
cell.TextLabel.Font = UIFont.FromName ("Arial", 15f);
cell.Accessory = value.Selected ? UITableViewCellAccessory.Checkmark : UITableViewCellAccessory.None;
return cell;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return _model.Count;
}
public override void RowSelected(UITableView tableView,NSIndexPath indexPath)
{
var cell = tableView.CellAt(indexPath);
var data = _model[indexPath.Row];
if (data.Selected)
data.Selected = false;
cell.Accessory = UITableViewCellAccessory.None;
Toast.MakeText(data.Name.ToString() + " Not Checked", Toast.LENGTH_LONG).SetGravity(ToastGravity.Center).Show();
}
else
{
data.Selected = true;
cell.Accessory = UITableViewCellAccessory.Checkmark;
Toast.MakeText(data.Name.ToString() + " Checked", Toast.LENGTH_LONG).SetGravity(ToastGravity.Center).Show()
}
cell.Selected = false;
tableView.ReloadData();
}
}
}
Ve soru nedir? – jbm
Ne yapmak istediğinizi belirtin ve bazı kodlar yayınladınız, ama sorun nedir? asıl soru nedir? lütfen [sor] ve [mcve] 'ye bakın –
Üzgünüm, sorumu açıklamak için yukarıdaki yanıtımı düzenledim. – pkozlowski