On Jan 14, 2012, at 11:47 PM, Tom Opgenorth wrote:
> Is this the correct way to port this code over?  Or is there a simpler way.

Yes, that's a correct way. A variation on that is to simplify your 
SimpleCursorAdapter.ICursorToStringConverter implementation to rely on 
delegates, which would allow for closure use:

        class CursorToStringConverter : Java.Lang.Object,    
SimpleCursorAdapter.ICursorToStringConverter {
                Func<ICursor, ICharSequence> converter;

                public CursorToStringConverter (Func<ICursor, ICharSequence> 
converter)
                {
                        this.converter = converter;
                }

                public ICharSequence ConvertToStringFormatted(ICursor cursor)
                {
                        return converter (cursor);
                }
        }

This would permit your callsite to become:

        adapter.CursorToStringConverter = new CursorToStringConverter (c => {
                        var colIndex = 
c.GetColumnIndexOrThrow(VehicleTripDescriptionTable.Columns.DESCRIPTION);
                        var value = c.GetString(colIndex);
                        return new Java.Lang.String(value);
        });

In this case it might not buy you anything, but if you need multiple 
SimpleCursorAdapter.ICursorToStringConverter implementations then you'll need 
only one interface implementation and each callsite can provide a different 
ConvertToStringFormatted() "body", similar to what Java does.

 - Jon

_______________________________________________
Monodroid mailing list
[email protected]

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

Reply via email to