[mono-android] drag-drop listener
Wally McClure
theevilprogrammer at hotmail.com
Wed Jan 4 21:06:35 EST 2012
Thanks. Christntr got me set on this.
Wally
From: theevilprogrammer at hotmail.com
To: monodroid at lists.ximian.com
Date: Wed, 4 Jan 2012 20:50:41 -0500
Subject: [mono-android] drag-drop listener
I've tried my best to update the dnd sample to c# from http://developer.android.com/guide/topics/ui/drag-drop.html. I've got an imageview that I am using. The problem is that nothing in myDragListener seems to fire. I think the problem is when I instantiate the class, I am handing in the incorrect handle. Any suggestions on getting this to work? The second problem is that the example lists a .SetColorFilter method on a view doesn't seem to be there. Is there another method I can use? Any thoughts/ideas are appreciated.
Wally
// Sets the drag event listener for the View
iv.SetOnDragListener(mDragListen);....................................................
protected class myDragEventListener : View.IOnDragListener
{
Context _c;
public myDragEventListener(Context c)
{
_c = c;
}
// This is the method that the system calls when it dispatches a drag event to the
// listener.
public bool OnDrag(View v, DragEvent e)
{
// Defines a variable to store the action type for the incoming event
var action = e.Action;
// Handles each of the expected events
switch (action)
{
case Android.Views.DragAction.Started:
// Determines if this View can accept the dragged data
if (e.ClipDescription.HasMimeType(ClipDescription.MimetypeTextPlain))
{
// As an example of what your application might do,
// applies a blue color tint to the View to indicate that it can accept
// data.
v.SetBackgroundColor(Android.Graphics.Color.Blue);
//v.SetColorFilter(Android.Graphics.Color.Blue);
// Invalidate the view to force a redraw in the new tint
v.Invalidate();
// returns true to indicate that the View can accept the dragged data.
return (true);
}
else
{
// Returns false. During the current drag and drop operation, this View will
// not receive events again until ACTION_DRAG_ENDED is sent.
return (false);
}
case Android.Views.DragAction.Entered:
// Applies a green tint to the View. Return true; the return value is ignored.
v.SetBackgroundColor(Android.Graphics.Color.Green);
//v.setColorFilter(Color.GREEN);
// Invalidate the view to force a redraw in the new tint
v.Invalidate();
return (true);
case Android.Views.DragAction.Location:
// Ignore the event
return (true);
case Android.Views.DragAction.Exited:
// Re-sets the color tint to blue. Returns true; the return value is ignored.
//v.setColorFilter(Color.BLUE);
v.SetBackgroundColor(Android.Graphics.Color.Blue);
// Invalidate the view to force a redraw in the new tint
v.Invalidate();
return (true);
case Android.Views.DragAction.Drop:
// Gets the item containing the dragged data
ClipData.Item item = e.ClipData.GetItemAt(0);
// Gets the text data from the item.
var dragData = item.Text;
// Displays a message containing the dragged data.
Toast.MakeText(v.Context, "Dragged data is " + dragData, ToastLength.Long).Show();
// Turns off any color tints
//v.clearColorFilter();
// Invalidates the view to force a redraw
v.Invalidate();
// Returns true. DragEvent.getResult() will return true.
return (true);
case Android.Views.DragAction.Ended:
// Turns off any color tinting
//v.clearColorFilter();
// Invalidates the view to force a redraw
v.Invalidate();
// Does a getResult(), and displays what happened.
if (e.Result)
{
Toast.MakeText(v.Context, "The drop was handled.", ToastLength.Long).Show();
}
else
{
Toast.MakeText(v.Context, "The drop didn't work.", ToastLength.Long).Show();
};
// returns true; the value is ignored.
return (true);
// An unknown action type was received.
default:
Android.Util.Log.Error("DragDrop Example", "Unknown action type received by OnDragListener.");
return (true);
};
}
IntPtr IJavaObject.Handle
{
get { return _c.Handle; }
}
}
_______________________________________________
Monodroid mailing list
Monodroid at lists.ximian.com
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodroid/attachments/20120104/a98676cf/attachment-0001.html
More information about the Monodroid
mailing list