我可以帮您翻译成中文。这段文字是关于使用Xamarin开发基本Android应用程序的,其中包括ListView和Adapter。但是,当我删除或编辑任何项时,ListView不会自动刷新。我知道ObservableCollection,但我不知道如何在Adapter中使用它。请问有人能帮助我吗?我是Xamarin的新手。
适配器:
ListView:
DataStorage.meallist是一个简单的列表。我尝试将ObservableCollection放入适配器和DataStorage.meallist中,但没有帮助。
适配器:
public class MealsAdapter : BaseAdapter<Meal>
{
List<Meal> items;
Activity context;
public MealsAdapter(Activity context, List<Meal> items)
: base()
{
this.context = context;
this.items = items;
}
public override Meal this[int position]
{
get
{
return items[position];
}
}
public override int Count
{
get
{
return items.Count;
}
}
public override long GetItemId(int position)
{
return position;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = items[position];
View view = convertView;
if (view == null)
view = context.LayoutInflater.Inflate(Resource.Layout.MealListItem, null);
view.FindViewById<TextView>(Resource.Id.textViewNazev).Text = item.Name;
view.FindViewById<TextView>(Resource.Id.textViewBilkoviny).Text = context.Resources.GetString(Resource.String.BilkovinyNadpis) + ": " + item.Bilkoviny.ToString();
view.FindViewById<TextView>(Resource.Id.textViewSacharidy).Text = context.Resources.GetString(Resource.String.SacharidyNadpis) + ": " + item.Sacharidy.ToString();
return view;
}
}
ListView:
ListView listView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.MealsSettings);
listView = FindViewById<ListView>(Resource.Id.listViewJidlo);
listView.Adapter = new MealsAdapter(this, DataStorage.meallist);
listView.ItemClick += ListView_ItemClick;
}
DataStorage.meallist是一个简单的列表。我尝试将ObservableCollection放入适配器和DataStorage.meallist中,但没有帮助。