鸿蒙OS BaseItemProvider
BaseItemProvider
java.lang.Object
|---ohos.agp.components.BaseItemProvider
public abstract class BaseItemProvider
extends Object
提供 BaseItemProvider 对象以将 ComponentProvider 项与组件的基本数据相关联。
提供者提供对数据项的访问并为数据集中的每个项创建一个组件。 当数据集中的内容发生变化时,通知订阅者响应变化,并在屏幕上同步刷新更新的内容。
构造函数摘要
构造函数 | 描述 |
---|---|
BaseItemProvider() | 构造函数 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | addDataSubscriber(DataSetSubscriber subscriber) | 添加数据集订阅者。 |
abstract Component | getComponent(int position, Component convertComponent, ComponentContainer parent) | 获取在数据集中指定位置显示数据的组件。 |
int | getComponentTypeCount() | 获取数据集中所有项目的组件类型数。 |
abstract int | getCount() | 获取提供程序中的数据项总数。 |
TextFilter | getFilter() | 获取文本过滤器。 |
abstract Object | getItem(int position) | 获取数据集中指定位置的数据项。 |
int | getItemComponentType(int position) | 根据位置获取数据集中数据项的组件类型。 |
abstract long | getItemId(int position) | 获取数据集中指定位置的数据项的行ID。 |
void | notifyDataChanged() | 刷新已更新数据项的组件。 |
void | notifyDataInvalidated() | 当提供者数据无效时调用。 |
void | notifyDataSetItemChanged(int position) | 刷新已更新数据项的组件。 |
void | notifyDataSetItemInserted(int position) | 刷新指定数据项已更改的组件。 |
void | notifyDataSetItemRangeChanged(int startPos, int countItems) | 刷新从给定位置开始的指定数量的数据项已更改的组件。 |
void | notifyDataSetItemRangeInserted(int startPos, int countItems) | 刷新从给定位置开始插入了指定数量的数据项的组件。 |
void | notifyDataSetItemRangeRemoved(int startPos, int countItems) | 刷新已删除从给定位置开始的指定数量数据项的组件。 |
void | notifyDataSetItemRemoved(int position) | 刷新已从中删除指定数据项的组件。 |
void | onItemMoved(int from, int to) | 当组件项应移动到数据集中的其他位置时在内部调用。 |
void | removeDataSubscriber(DataSetSubscriber subscriber) | 删除数据集订阅者。 |
void | setFilter(TextFilter filter) | 设置文本过滤器。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数相信信息
BaseItemProvider
public BaseItemProvider()
构造函数
方法详情
getCount
public abstract int getCount()
获取提供程序中的数据项总数。
返回:
返回提供程序中的数据项总数。
getItem
public abstract Object getItem(int position)
获取数据集中指定位置的数据项。
参数:
参数名称 | 参数描述 |
---|---|
position | 表示数据项在数据集中的位置。 |
返回:
返回指定位置的数据项。
getItemId
public abstract long getItemId(int position)
获取数据集中指定位置的数据项的行ID。
参数:
参数名称 | 参数描述 |
---|---|
position | 表示数据项的行ID的位置。 |
返回:
返回指定位置的数据项的行 ID。
getComponent
public abstract Component getComponent(int position, Component convertComponent, ComponentContainer parent)
获取在数据集中指定位置显示数据的组件。
参数:
参数名称 | 参数描述 |
---|---|
position | 表示组件在数据集中的位置。 |
convertComponent | 表示要重用的前一个组件。 如果没有此类组件,则此参数可以为 null。 |
parent | 表示与要获取的组件匹配的父组件。 |
返回:
返回与指定位置的数据项匹配的组件。
getItemComponentType
public int getItemComponentType(int position)
根据位置获取数据集中数据项的组件类型。
每次将组件布局添加到数据集时,都必须添加组件类型以匹配组件布局。 组件类型取值范围从 0 到 getComponentTypeCount() 的结果减 1。例如,包含一个键的组件布局匹配组件类型值 0,包含两个键的组件布局匹配组件类型值 1。
参数:
参数名称 | 参数描述 |
---|---|
position | 指示组件项在提供程序数据集中的位置。 |
返回:
返回组件类型。
getComponentTypeCount
public int getComponentTypeCount()
获取数据集中所有项目的组件类型数。 默认情况下,组件类型的数量为 1。
返回:
返回数据集中所有项目的组件类型数。
notifyDataChanged
public void notifyDataChanged()
刷新已更新数据项的组件。
使用 DataSetPublisher#notifyChanged() 方法通知每个注册的订阅者。
notifyDataInvalidated
public void notifyDataInvalidated()
当提供者数据无效时调用。
使用 DataSetPublisher#informInvalidated() 方法通知每个注册的订阅者。
notifyDataSetItemChanged
public void notifyDataSetItemChanged(int position)
刷新已更新数据项的组件。
使用 DataSetPublisher#notifyItemChanged(int) 方法通知每个注册的订阅者。
参数:
参数名称 | 参数描述 |
---|---|
position | 表示项目在数据集中的位置。 |
notifyDataSetItemInserted
public void notifyDataSetItemInserted(int position)
刷新指定数据项已更改的组件。
要通知数据更改订阅者,请调用 DataSetPublisher#notifyItemChanged(int)。
参数:
参数名称 | 参数描述 |
---|---|
position | 指示更改的数据项在数据集中的位置。 |
notifyDataSetItemRemoved
public void notifyDataSetItemRemoved(int position)
刷新已从中删除指定数据项的组件。
要通知数据更改订阅者,请调用 DataSetPublisher#notifyItemRemoved(int)。
参数:
参数名称 | 参数描述 |
---|---|
position | 表示被移除的数据项在数据集中的位置。 |
notifyDataSetItemRangeChanged
public void notifyDataSetItemRangeChanged(int startPos, int countItems)
刷新从给定位置开始的指定数量的数据项已更改的组件。
要通知数据更改订阅者,请调用 DataSetPublisher#notifyItemRangeChanged(int, int)。
参数:
参数名称 | 参数描述 |
---|---|
startPos | 指示已更改的第一个数据项的位置。 |
countItems | 指示已更改的数据项数。 |
notifyDataSetItemRangeInserted
public void notifyDataSetItemRangeInserted(int startPos, int countItems)
刷新从给定位置开始插入了指定数量的数据项的组件。
要通知数据更改订阅者,请调用 DataSetPublisher#notifyItemRangeInserted(int, int)。
参数:
参数名称 | 参数描述 |
---|---|
startPos | 指示已插入的第一个数据项的位置。 |
countItems | 表示已插入的数据项数。 |
notifyDataSetItemRangeRemoved
public void notifyDataSetItemRangeRemoved(int startPos, int countItems)
刷新已删除从给定位置开始的指定数量数据项的组件。
要通知数据更改订阅者,请调用 DataSetPublisher#notifyItemRangeRemoved(int, int)。
参数:
参数名称 | 参数描述 |
---|---|
startPos | 指示已删除的第一个数据项的位置。 |
countItems | 表示已删除的数据项数。 |
addDataSubscriber
public final void addDataSubscriber(DataSetSubscriber subscriber)
添加数据集订阅者。
参数:
参数名称 | 参数描述 |
---|---|
subscriber | 指示订阅者在数据集中的内容发生更改时通知。 |
removeDataSubscriber
public final void removeDataSubscriber(DataSetSubscriber subscriber)
删除数据集订阅者。
参数:
参数名称 | 参数描述 |
---|---|
subscriber | 指示订阅者在数据集中的内容发生更改时通知。 |
setFilter
public void setFilter(TextFilter filter)
设置文本过滤器。
参数:
参数名称 | 参数描述 |
---|---|
filter | 表示文本过滤器。 |
getFilter
public TextFilter getFilter()
获取文本过滤器。
返回:
返回文本过滤器。
onItemMoved
public void onItemMoved(int from, int to)
当组件项应移动到数据集中的其他位置时在内部调用。
参数:
参数名称 | 参数描述 |
---|---|
from | 表示组件项在数据集中的原始位置。 |
to | 表示组件项在数据集中的目标位置。 |