私はAdapterでListItemを設定したListViewを持っているXamarin経由で基本的なAndroidアプリケーションを開発しています。しかし、私が項目を削除したり編集したりすると、リストビュー自体がリフレッシュされません。私はObservableCollectionを知っているが、私はアダプタでそれを使う方法を知らない。誰か助けてくれますか?私はXamarinで新しいです。Android Xamarin - ObservableCollectionを使用したListViewアダプタ
アダプタ:
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;
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に配置しようとしましたが、それは助けとなりました。