Xamarin (Android) - 在重写 GetItemID() 时,BaseAdapter return 可以是与 Long 不同的数据类型吗?

Xamarin (Android) - Can BaseAdapter return a different data type than Long when overriding GetItemID()?

我正在继承 BaseAdapter 并重写一些方法。其中一个是 GetItemID(int iPosition).

public override long GetItemId(int iPosition)
    {
        return moCustomModels[iPosition].EntityID; //EntityID is a type of Guid
    }

这里的问题是 - 它确实是 return Long 数据类型,我需要它到 return Guid - 有没有办法做到这一点?

很遗憾,您遇到了很长的问题。 AbsListView 在内部使用该方法来跟踪项目的选择状态。如果您希望它 return 一个 GUID 用于您自己的目的,最好创建您自己的 return GUID 的方法。

但是,如果您专门使用该方法来支持选择状态,则必须为每个位置提供一些新的唯一标识符。为了进一步阅读,这里有一个通用的 C# 问题,它提出了一个类似的问题:Converting GUID to long.