Flo*_*aal 0 android gridview xamarin.android xamarin
所以我的活动中有一个列表视图和一个gridview.两者都有定制适配器.如果执行DragAction.Drop,我会显示警报以确认操作.如果用户确认这一点,我将更改de数据库中的一些数据.现在数据已更改我需要刷新listview.该方法已存在但属于活动的一部分.我执行警报以及需要在适配器中执行的其他操作.所以我需要告诉活动,完成了drop的操作.因此活动可以调用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;
}
Run Code Online (Sandbox Code Playgroud)
您可以创建一个简单的界面.
public interface DragCompletedListener{
void onDragComplete();
}
Run Code Online (Sandbox Code Playgroud)
然后,在你的网格适配器中准备一个成员变量:
private DragCompletedListener dragCompletedListener;
Run Code Online (Sandbox Code Playgroud)
准备setter方法:
public void setDragCompletedListener(DragCompletedListener dragCompletedListener){
this.dragCompletedListener = dragCompletedListener;
}
Run Code Online (Sandbox Code Playgroud)
让您的活动实现DragCompletedListener.
并在您创建网格视图适配器的位置添加侦听器:
MyGridViewAdapter adapter = new MyGridViewAdapter();
adapter.setDragCompletedListener(this);
Run Code Online (Sandbox Code Playgroud)
在switch语句中,添加一个调用:
if (dragCompletedListener != null){
dragCompletedListener.onDragCompleted();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1994 次 |
| 最近记录: |