3
我已經實現了一個自定義BaseAdapter,它顯示具有自定義佈局的列表項目。刪除列表視圖項目從列表視圖項目按鈕
一切正常,但我試圖添加一個刪除按鈕出現在項目旁邊(我有),但我有問題試圖讓它工作。
相關的代碼是在這裏:
public List<OrderLineItem> Items
{
get;
set;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
OrderLineItem item = GetItemAtPosition(position);
var view = (convertView ??
Context.LayoutInflater.Inflate(Resource.Layout.CustomListItem, parent, false)) as LinearLayout;
// ..........
var removeButton = view.FindViewById(Resource.Id.btnRemove) as Button;
removeButton.Click += delegate
{
Items.RemoveAt(position);
this.NotifyDataSetChanged();
};
// ...........
return view;
}
的問題是,我認爲,由於委託關閉,因爲Items.Count總是等於的位置偏移。
謝謝斯圖爾特。您可能需要更新view.Tag = ...以在按鈕上設置標籤,因爲(s,e)=> {s - 等於按鈕作爲發件人。 – Sam
已修復。謝謝。你也許會發現在某些時候內聯函數可能導致內存泄漏 - 我仍然不確定我是否理解這個錯綜複雜的內容! – Stuart