protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.DragDropMainLayout); Drawable _icon = Resources.GetDrawable (Resource.Drawable.Icon); #region List of controls Admin.Add(new Active_Controls("Settings", "ic_settings")); Admin.Add(new Active_Controls("Map","ic_map")); Admin.Add(new Active_Controls("Calender","ic_calender")); #endregion #region Admin side list (Right) Admin_List= FindViewById<ListView> (Resource.Id.Admin_List); adap_Admin=new Controls_Adapter(this, Admin); Admin_List.Adapter = adap_Admin; Admin_List.ItemClick += (s, args) =>{ AlertDialog.Builder builder = new AlertDialog.Builder(this,AlertDialog.ThemeHoloLight); AlertDialog alertDialog = builder.Create(); alertDialog.SetTitle ("Alert"); alertDialog.SetIcon(Resources.GetDrawable(Resource.Drawable.Icon)); alertDialog.SetMessage("This is ADMIN side."); alertDialog.SetButton("OK", (sender, e) => { }); alertDialog.Show(); }; //Drag element is triggered Admin_List.ItemLongClick += (s, args) => { //To check whether the object is moved or not ClipData data = ClipData.NewPlainText ("Admin", args.Position.ToString ()); //Initializing Shadow Builder to get the shadow view of the selected Item. MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View); //Start to drag args.View.StartDrag (data, my_shadown_screen, null, 0); }; // Drag event in listview Admin_List.Drag += (s, args) => { switch (args.Event.Action) { //Object started dragging case DragAction.Started: args .Handled = true; break; //Object dragged in the view case DragAction.Entered: args.Handled = true; break; //Object dragged out the view case DragAction.Exited: args.Handled = true; break; //Object is released case DragAction.Drop: args.Handled = true; //Verifying the dragged is whether from the another view if(args.Event.ClipDescription.Label.Equals("User")) { //Recover the index int position=int.Parse(args.Event.ClipData.GetItemAt(0).Text); //Adding the object where it is released adap_Admin.add(adap_User.AdminSearch(position)); adap_User.remove (position); } break; //Triggred when drag operation is finished case DragAction.Ended: args.Handled = true; break; } }; #endregion #region User side list (Left) User_List= FindViewById<ListView> (Resource.Id.User_List); adap_User=new Controls_Adapter(this, User); User_List.Adapter = adap_User; User_List.ItemClick += (s, args) =>{ AlertDialog.Builder builder = new AlertDialog.Builder(this,AlertDialog.ThemeHoloLight); AlertDialog alertDialog = builder.Create(); alertDialog.SetTitle ("Alert"); alertDialog.SetIcon(Resources.GetDrawable(Resource.Drawable.Icon)); alertDialog.SetMessage("USER"); alertDialog.SetButton("OK", (sender, e) => { }); alertDialog.Show(); }; //Drag element is triggered User_List.ItemLongClick += (s, args) => { //To check whether the object is moved or not ClipData data = ClipData.NewPlainText ("User",args.Position.ToString()); //Initializing Shadow Builder to get the shadow view of the selected Item. MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder (args.View); //Start to drag args.View.StartDrag (data, my_shadown_screen, null, 0); }; // Drag event in listview User_List.Drag += (s, args) => { switch (args.Event.Action) { //Object started dragging case DragAction.Started: args .Handled = true; break; //Object dragged in the view case DragAction.Entered: args.Handled = true; break; //Object dragged out the view case DragAction.Exited: args.Handled = true; break; //Object is released case DragAction.Drop: args.Handled = true; //Verifying the dragged is whether from the another view if(args.Event.ClipDescription.Label.Equals("Admin")) { //Recover the index int position=int.Parse(args.Event.ClipData.GetItemAt(0).Text); //Adding the object where it is released adap_User.add (adap_Admin.AdminSearch(position)); adap_Admin.remove (position); } break; //Triggred when drag operation is finished case DragAction.Ended: args.Handled = true; break; } }; #endregion }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); //Definimos nuestra lista de Permisos Permisos.Add(new Permisos_Activos("GRAFICAR", "ic_2")); Permisos.Add(new Permisos_Activos("MAPA", "ic_3")); Permisos.Add(new Permisos_Activos("CALENDARIO", "ic_4")); /*****************************LISTVIEW PERMISOS (DERECHO)********************************************/ //Inicializamos nuestro listview de permisos(listview de lado derecho) lvPermisos = FindViewById <ListView> (Resource.Id.lvPermisos); //Incializamos el adaptador con nuestro listado de permisos adap_Permisos = new Adapter_Permisos(this, Permisos); //Le asignamos el adaptador a nuestro listview lvPermisos.Adapter = adap_Permisos; //Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado //en uno de los items del listview se dispare nuestro arrastre del elemento lvPermisos.ItemLongClick += (s, args) => { //Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando //y ademas a que listview pertece ClipData data = ClipData.NewPlainText("Permisos", args.Position.ToString()); //Inicializamo nuestro ShadowBuilder para ver el objecto que se esta arrastrando MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View); //Asignamos los valores y arrancamos nuestro envento Drag args.View.StartDrag(data, my_shadown_screen, null, 0); }; //Definimos el metodo que se dispara con el evento Drag de neustro listview. lvPermisos.Drag += (s, args) => { switch (args.Event.Action) { //Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma case DragAction.Started: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta case DragAction.Entered: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta case DragAction.Exited: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta case DragAction.Drop: args.Handled = true; //Verificamos que la vista que se solto viene de otro listview en este caso de Permisos_Usuario //de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar //dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento) if (args.Event.ClipDescription.Label.Equals("Permisos_Usuario")) { //Recupermos el index del elemento que se envio int posicion = int.Parse(args.Event.ClipData.GetItemAt(0).Text); //Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada //y lo agregamos al adapter del listview de donde se solto adap_Permisos.add(adap_Permisos_Usuario.PermisoBuscado(posicion)); //Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada adap_Permisos_Usuario.remove(posicion); } break; //Se dispara cuando la operacion de arrastre ha terminado case DragAction.Ended: args.Handled = true; break; } }; /*****************************LISTVIEW PERMISOS USUARIO(IZQUIERDO)********************************************/ //Inicializamos nuestro listview de permisos(listview de lado izquierdo) lvPermisos_Usuario = FindViewById <ListView> (Resource.Id.lvPermisos_Usuario); //Incializamos el adaptador con nuestro listado de permisos de usuario, recordemos que este por defecto no //tiene permisos asignados adap_Permisos_Usuario = new Adapter_Permisos(this, Permisos_Usuario); //Le asignamos el adaptador a nuestro listview lvPermisos_Usuario.Adapter = adap_Permisos_Usuario; //Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado //en uno de los items del listview se dispare nuestro arrastre del elemento lvPermisos_Usuario.ItemLongClick += (s, args) => { //Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando //y ademas a que listview pertece ClipData data = ClipData.NewPlainText("Permisos_Usuario", args.Position.ToString()); //Inicializamo nuestro ShadowBuilder para ver el objecto que se esta arrastrando MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View); //Asignamos los valores y arrancamos nuestro envento Drag args.View.StartDrag(data, my_shadown_screen, null, 0); }; //Definimos el metodo que se dispara con el evento Drag de nuestro listview. lvPermisos_Usuario.Drag += (s, args) => { switch (args.Event.Action) { //Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma case DragAction.Started: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta case DragAction.Entered: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta case DragAction.Exited: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta case DragAction.Drop: args.Handled = true; //Verificamos que la vista que se solto viene de otro listview en este caso de Permisos //de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar //dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento) if (args.Event.ClipDescription.Label.Equals("Permisos")) { //Recupermos el index del elemento que se envio int posicion = int.Parse(args.Event.ClipData.GetItemAt(0).Text); //Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada //y lo agregamos al adapter del listview de donde se solto adap_Permisos_Usuario.add(adap_Permisos.PermisoBuscado(posicion)); //Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada adap_Permisos.remove(posicion); } break; //Se dispara cuando la operacion de arrastre ha terminado case DragAction.Ended: args.Handled = true; break; } }; }
protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); //Definimos nuestra lista de Permisos Permisos.Add(new Permisos_Activos("GRAFICAR", "ic_2")); Permisos.Add(new Permisos_Activos("MAPA","ic_3")); Permisos.Add(new Permisos_Activos("CALENDARIO","ic_4")); /*****************************LISTVIEW PERMISOS (DERECHO)********************************************/ //Inicializamos nuestro listview de permisos(listview de lado derecho) lvPermisos= FindViewById<ListView> (Resource.Id.lvPermisos); //Incializamos el adaptador con nuestro listado de permisos adap_Permisos=new Adapter_Permisos(this, Permisos); //Le asignamos el adaptador a nuestro listview lvPermisos.Adapter = adap_Permisos; //Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado //en uno de los items del listview se dispare nuestro arrastre del elemento lvPermisos.ItemLongClick += (s, args) => { //Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando //y ademas a que listview pertece ClipData data = ClipData.NewPlainText ("Permisos", args.Position.ToString ()); //Inicializamo nuestro ShadowBuilder para ver el objecto que se esta arrastrando MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View); //Asignamos los valores y arrancamos nuestro envento Drag args.View.StartDrag (data, my_shadown_screen, null, 0); }; //Definimos el metodo que se dispara con el evento Drag de neustro listview. lvPermisos.Drag += (s, args) => { switch (args.Event.Action) { //Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma case DragAction.Started: args .Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta case DragAction.Entered: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta case DragAction.Exited: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta case DragAction.Drop: args.Handled = true; //Verificamos que la vista que se solto viene de otro listview en este caso de Permisos_Usuario //de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar //dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento) if(args.Event.ClipDescription.Label.Equals("Permisos_Usuario")) { //Recupermos el index del elemento que se envio int posicion=int.Parse(args.Event.ClipData.GetItemAt(0).Text); //Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada //y lo agregamos al adapter del listview de donde se solto adap_Permisos.add(adap_Permisos_Usuario.PermisoBuscado(posicion)); //Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada adap_Permisos_Usuario.remove (posicion); } break; //Se dispara cuando la operacion de arrastre ha terminado case DragAction.Ended: args.Handled = true; break; } }; /*****************************LISTVIEW PERMISOS USUARIO(IZQUIERDO)********************************************/ //Inicializamos nuestro listview de permisos(listview de lado izquierdo) lvPermisos_Usuario= FindViewById<ListView> (Resource.Id.lvPermisos_Usuario); //Incializamos el adaptador con nuestro listado de permisos de usuario, recordemos que este por defecto no //tiene permisos asignados adap_Permisos_Usuario=new Adapter_Permisos(this, Permisos_Usuario); //Le asignamos el adaptador a nuestro listview lvPermisos_Usuario.Adapter = adap_Permisos_Usuario; //Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado //en uno de los items del listview se dispare nuestro arrastre del elemento lvPermisos_Usuario.ItemLongClick += (s, args) => { //Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando //y ademas a que listview pertece ClipData data = ClipData.NewPlainText ("Permisos_Usuario",args.Position.ToString()); //Inicializamo nuestro ShadowBuilder para ver el objecto que se esta arrastrando MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder (args.View); //Asignamos los valores y arrancamos nuestro envento Drag args.View.StartDrag (data, my_shadown_screen, null, 0); }; //Definimos el metodo que se dispara con el evento Drag de nuestro listview. lvPermisos_Usuario.Drag += (s, args) => { switch (args.Event.Action) { //Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma case DragAction.Started: args .Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta case DragAction.Entered: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta case DragAction.Exited: args.Handled = true; break; //Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta case DragAction.Drop: args.Handled = true; //Verificamos que la vista que se solto viene de otro listview en este caso de Permisos //de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar //dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento) if(args.Event.ClipDescription.Label.Equals("Permisos")) { //Recupermos el index del elemento que se envio int posicion=int.Parse(args.Event.ClipData.GetItemAt(0).Text); //Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada //y lo agregamos al adapter del listview de donde se solto adap_Permisos_Usuario.add (adap_Permisos.PermisoBuscado(posicion)); //Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada adap_Permisos.remove (posicion); } break; //Se dispara cuando la operacion de arrastre ha terminado case DragAction.Ended: args.Handled = true; break; } }; }