我很好奇这些方法的用途 getItem
和 getItemId
在 Android SDK 的 Adapter 类中。
从描述来看,getItem
似乎应该返回底层数据。所以,如果我有一个名称数组 ["cat","dog","red"]
并且我创建一个适配器 a
使用那,那么 a.getItem(1)
应该返回“dog”,对吗? a.getItemId(1)
应该返回什么?
如果你在实践中使用过这些方法,你能举个例子吗?
最佳答案
我认为这些方法是访问列表数据的一种更简洁的方法。而不是通过像 myListData.get(position)
这样的东西直接访问我的适配器对象,我可以简单地调用像 adapter.get(position)
这样的适配器。
getItemId
也是如此。通常,当我想根据列表中对象的唯一 ID 执行某些任务时,我会使用此方法。这在使用数据库时特别有用。返回的 id
可以是对数据库中对象的引用,然后我可以对它执行不同的操作(更新/删除/等)。
因此,您可以使用 adapter.getItemId(position)
,而不是像 myListData.get(position).getId()
这样从原始数据对象访问 ID。
我觉得需要使用这些方法的一个例子是在一个使用 SeparatedListViewAdapter 的项目中。 .此适配器可以包含多种不同类型的适配器,每个适配器代表不同类型的数据(通常)。在 SeparatedListViewAdapter
上调用 getItem(position)
时,返回的对象可能会有所不同,具体取决于您发送它的位置“部分”。
例如,如果您的列表中有 2 个部分(水果和糖果):如果您使用了 getItem(position)
并且 position
恰好位于在 fruit 部分,您将收到与请求 getItem(position)
且 position
指向 中的项目不同的对象糖果部分。然后,您可能会在 getItemId(position)
中返回某种常量 ID 值,它表示 getItem(position)
正在返回的数据类型,或者使用 instanceof
来确定你有什么对象。
除了我提到的以外,我从来没有觉得我真的需要使用这些方法
关于android - Android 类 BaseAdapter 中方法 getItem 和 getItemId 的 Intent 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6711592/