OK I have made a small test project you can look at.

The compiler complains about CreateItem in MyItemizedOverlay.

https://github.com/Cheesebaron/MonoDroid.TestOverlayItem

As I understand it OverlayItem (Something that comes with Mono for
Android) is supposed to implement Java.Lang.Object. But it does not!
Because as you said it has a using System; decleration along with a
using Java.Lang; declaration, so the OverlayItem : Object is
ambiguous.

On Tue, Dec 6, 2011 at 1:48 PM, Tomasz Cielecki <[email protected]> wrote:
> Or wait I was a bit quick there.
>
> Give me a moment and I will make a test project for you to see what is
> happening.
>
> On Tue, Dec 6, 2011 at 1:45 PM, Tomasz Cielecki <[email protected]> wrote:
>> OK, that seems a bit strange to me. Your suggestion works though. I
>> would have though that the OverlayItem would explicitly be
>> implementing Java.Lang.Object rather than just Object so that it would
>> be unambiguous.
>>
>> Maybe someone should make a note about this somewhere so that people
>> do not make the same mistake as I did.
>>
>> On Tue, Dec 6, 2011 at 1:35 PM, Atsushi Eno
>> <[email protected]> wrote:
>>> Ah, no that's not a bug :)
>>> You likely have "using System;" on top of your source and that binds
>>> "Object" class to System.Object type. Unlike "java.lang" package for
>>> Java compilers, C# compiler does not import "Java.Lang" by default, so
>>> you have to explicitly write "using Java.Lang;" .
>>>
>>> However, if you do that, C# compiler will error it out because "Object"
>>> name is now ambiguous between "System.Object" and "Java.Lang.Object".
>>> So, you will either have to give up using "using" statement or add
>>> explicit declaration that "using Object = Java.Lang.Object;" .
>>>
>>> Atsushi Eno
>>>
>>>> So the OverlayItem is having the using Java.Lang; in the top of the
>>>> file and is implementing Object, but then the compiler thinks it is
>>>> System.Object rather than Java.Lang.Object. I guess this is a bug that
>>>> you will have to correct.
>>>>
>>>> Meanwhile I am just using
>>>>
>>>> protected override Java.Lang.Object CreateItem(int index)
>>>>          {
>>>>              return overlayItems.ElementAt(index);
>>>>          }
>>>>
>>>> Which seems to work fine.
>>>>
>>>> I have created a bug report: 
>>>> http://bugzilla.xamarin.com/show_bug.cgi?id=2358
>>>>
>>>> On Tue, Dec 6, 2011 at 11:55 AM, Atsushi Eno
>>>> <[email protected]>  wrote:
>>>>> Yes, as the error message tells, it must be derived from Java.Lang.Object.
>>>>>
>>>>> Atsushi Eno
>>>>>
>>>>>> Is this because Overlay item is inheriting from System.Object rather
>>>>>> than Java.Lang.Object?
>>>>>>
>>>>>>        public class OverlayItem : Object
>>>>>>
>>>>>> On Tue, Dec 6, 2011 at 9:45 AM, Tomasz Cielecki<[email protected]>   
>>>>>>  wrote:
>>>>>>> I get the same error even if CreateItem returns OverlayItem. So
>>>>>>> something is wrong somewhere.
>>>>>>>
>>>>>>> On Tue, Dec 6, 2011 at 9:43 AM, Tomasz Cielecki<[email protected]>  
>>>>>>>   wrote:
>>>>>>>> OK. About that OverlayItem. I have a Custom overlay item which looks 
>>>>>>>> like this:
>>>>>>>>
>>>>>>>>      class NMTOverlayItem : OverlayItem
>>>>>>>>      {
>>>>>>>>          private float[] color;
>>>>>>>>
>>>>>>>>          public NMTOverlayItem(GeoPoint point, String title, String
>>>>>>>> snippet, float[] color)
>>>>>>>>              : base(point, title, snippet)
>>>>>>>>          {
>>>>>>>>                      this.color = color;
>>>>>>>>          }
>>>>>>>>
>>>>>>>>          public float[] Color
>>>>>>>>          {
>>>>>>>>              get { return color; }
>>>>>>>>          }
>>>>>>>>      }
>>>>>>>>
>>>>>>>> Now in the itenized overlay I have the CreateItem method:
>>>>>>>>
>>>>>>>>          protected override NMTOverlayItem CreateItem(int index)
>>>>>>>>          {
>>>>>>>>              return overlayItems.ElementAt(index);
>>>>>>>>          }
>>>>>>>>
>>>>>>>> I get the following error:
>>>>>>>>
>>>>>>>> 'NSPublic.AndroidClient.NMTItemizedOverlay.CreateItem(int)': return
>>>>>>>> type must be 'Java.Lang.Object' to match overridden member
>>>>>>>> 'Android.GoogleMaps.ItemizedOverlay.CreateItem(int)'
>>>>>>>>
>>>>>>>> Any ideas as to why this is happening?
>>>>>>>>
>>>>>>>> On Mon, Dec 5, 2011 at 6:52 PM, Tomasz Cielecki<[email protected]> 
>>>>>>>>    wrote:
>>>>>>>>> Awesome, will give it a go tomorrow :-)
>>>>>>>>>
>>>>>>>>> As always good job on the new release!
>>>>>>>>>
>>>>>>>>> On Dec 5, 2011 5:38 PM, "Jonathan Pryor"<[email protected]>    wrote:
>>>>>>>>>> On Dec 5, 2011, at 11:25 AM, Tomasz Cielecki wrote:
>>>>>>>>>>> Due to changes to how sensors work, i.e. stuff being moved into
>>>>>>>>>>> SensorTypes the samples on GitHub do not work anymore.
>>>>>>>>>> Changes needed to get the samples working with the new release were 
>>>>>>>>>> done
>>>>>>>>>> on the release-2-0 branch, which was just merged to master ~10 
>>>>>>>>>> minutes ago.
>>>>>>>>>> Please update your repo and see if that fixes it. :-)
>>>>>>>>>>
>>>>>>>>>>> Also there has been some changes in the ItemizedOverlay now having 
>>>>>>>>>>> the
>>>>>>>>>>> CreateItem method registered, but it needs to return a
>>>>>>>>>>> Java.Lang.Object, does that mean that my custom OverlayItem has to
>>>>>>>>>>> inherit from Java.Lang.Object? I thought OverlayItem was already a
>>>>>>>>>>> Java.Lang.Object?
>>>>>>>>>> OverlayItem inherits Java.Lang.Object, so your class inheriting from
>>>>>>>>>> OverlayItem will also inherit Java.Lang.Object, just not directly.
>>>>>>>>>>
>>>>>>>>>> Subclassing OverlayItem is fine (and required, iirc).
>>>>>>>>>>
>>>>>>>>>>> Is there a list of changes made in the newest release somewhere?
>>>>>>>>>> http://android.xamarin.com/Releases/Mono_for_Android_4/Release_4.0.0#API_Changes
>>>>>>>>>>
>>>>>>>>>>    - Jon
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Monodroid mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>>
>>>>>>>>>> UNSUBSCRIBE INFORMATION:
>>>>>>>>>> http://lists.ximian.com/mailman/listinfo/monodroid
>>>>>>>>
>>>>>>>> --
>>>>>>>> Med Venlig Hilsen / With Best Regards
>>>>>>>> Tomasz Cielecki
>>>>>>>> http://ostebaronen.dk
>>>>>>>
>>>>>>> --
>>>>>>> Med Venlig Hilsen / With Best Regards
>>>>>>> Tomasz Cielecki
>>>>>>> http://ostebaronen.dk
>>>>>>
>>>>> _______________________________________________
>>>>> Monodroid mailing list
>>>>> [email protected]
>>>>>
>>>>> UNSUBSCRIBE INFORMATION:
>>>>> http://lists.ximian.com/mailman/listinfo/monodroid
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Monodroid mailing list
>>> [email protected]
>>>
>>> UNSUBSCRIBE INFORMATION:
>>> http://lists.ximian.com/mailman/listinfo/monodroid
>>
>>
>>
>> --
>> Med Venlig Hilsen / With Best Regards
>> Tomasz Cielecki
>> http://ostebaronen.dk
>
>
>
> --
> Med Venlig Hilsen / With Best Regards
> Tomasz Cielecki
> http://ostebaronen.dk



-- 
Med Venlig Hilsen / With Best Regards
Tomasz Cielecki
http://ostebaronen.dk
_______________________________________________
Monodroid mailing list
[email protected]

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to