AccessibilityNodeInfo.AccessibilityAction
public static final class AccessibilityNodeInfo.AccessibilityActionextendsObject
| java.lang.Object | |
|---|---|
| ↳ | android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction |
added in API level 21.
定义一个在AccessibilityNodeInfo里执行的动作的类. 每一个操作都 有一个唯一的 id,且该 id 是强制的、可选的数据.
有三种类型的动作:
标准动作
- 这些是由平台中的标准UI widget报告和处理的操作. 这些类中为每个标准的动作定义了一个静态的常量, 例如.
ACTION_FOCUS. 这些动作的label为null.
- 这些是由平台中的标准UI widget报告和处理的操作. 这些类中为每个标准的动作定义了一个静态的常量, 例如.
自定义操作动作
- 这些是由平台中的自定义的widget报告和处理的操作. 例如. 那些不是UI工具包的一部分. 例如, 一个应用为清除用户数据自定义了一个操作.
重写标准动作
- 通过重写标准的动作来自定义它们. 例如, 一个app为标准的
ACTION_CLICK加入一个label来说明这个动作用来清除浏览器历史 .
- 通过重写标准的动作来自定义它们. 例如, 一个app为标准的
通过在onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)使用 addAction(AccessibilityAction) 来添加一个AccessibilityNodeInfo, 在performAccessibilityAction(int, Bundle)里执行这个动作.
注意: 支持这些操作的View应该使用IMPORTANT_FOR_ACCESSIBILITY_YES来执行setImportantForAccessibility(int)确保 AccessibilityService发现支持的动作组.
公共构造器
AccessibilityNodeInfo.AccessibilityAction
added in API level 21.
AccessibilityNodeInfo.AccessibilityAction (int actionId,
CharSequence label)
创建一个新的 AccessibilityAction. 加入一个标准动作不需要指定label, 使用静态常量就可以了. 你也可以重写一个标准动作的description. 下面演示为标准的点击动作加入一个自定义的label:
AccessibilityAction action = new AccessibilityAction(
AccessibilityAction.ACTION_CLICK.getId(), getLocalizedLabel());
node.addAction(action);
| 参数 | |
|---|---|
| actionId | int: 动作的id. 如果是标准动作就使用静态常量的getId获取. 如果是自定义动作, 则使用资源标识符. |
| label | CharSequence: 新AccessibilityAction的label.这个值可能会为null. |