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
_______________________________________________
Monodroid mailing list
[email protected]

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

Reply via email to