所以我的活动中有一个列表视图和一个网格视图。两者都有自定义适配器。如果执行 DragAction.Drop,我会显示一个警报以确认该操作。如果用户确认这一点,我将更改数据库中的一些数据。现在数据已更改,我需要刷新列表视图。该方法已经存在,但它是活动的一部分。我执行在适配器中放置时需要执行的警报和其他操作。所以我需要告诉活动丢弃的动作已经完成。所以activity可以调用refresh方法。
这是适配器中 DragAction.Drop 中的代码:
case DragAction.Drop:
truckNumber = e.Event.ClipData.GetItemAt (0).Text;
truckLabelText = e.Event.ClipDescription.Label;
AlertDialog.Builder alertBuilder = new AlertDialog.Builder (context);
alertBuilder.SetTitle ("Please confirm");
alertBuilder.SetMessage ("Are you sure you want to assign Truck: " + truckNumber + " to Dock: " + dockName.Text + "?");
alertBuilder.SetPositiveButton ("Yes", async delegate {
currentTruck.SetText (truckNumber, TextView.BufferType.Normal);
truckLabel.SetText (truckLabelText, TextView.BufferType.Normal);
await _DataLayer.changeTruckStatusCode (Convert.ToInt32 (truckNumber), 3);
});
alertBuilder.SetNegativeButton ("No", delegate {
});
alertBuilder.Show ();
e.Handled = true;
break;
}
};
dockName.SetText (item.name.ToString (), TextView.BufferType.Normal);
currentTruck.SetText ("", TextView.BufferType.Normal);
truckLabel.SetText ("", TextView.BufferType.Normal);
return view;
}