当前位置: 首页 > 知识库问答 >
问题:

如何更改双击和长按的Android对讲说明

华振
2023-03-14

我有一个具有长按操作处理程序的视图。我使用内容描述来设置消息对讲在视图获得焦点时说话。

目前它会在获得焦点后立即显示我的内容描述,稍作停顿后会显示:

双击激活,双击并保持长按

我想把这条消息改成这样

双击“动作1”,双击并按住“动作2”

有没有办法做到这一点?

我查看了< code > onPopulateAccessibilityEvent(),它获得< code > TYPE _ VIEW _ ACCESSIBILITY _ FOCUSED 事件,但是我无法更改所需的消息。

我错过了什么简单的东西吗?

共有3个答案

吴谦
2023-03-14

对于那些想要删除所有短语即的人,请使用下面的代码。“双击以激活”、“双击并按住长按”。

mSubTitleText = (TextView) view.findViewById(R.id.txt_subtitle);

 ViewCompat.setAccessibilityDelegate(mSubTitleText, new AccessibilityDelegateCompat() {
            @Override
            public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
                host.setClickable(false);
                host.setLongClickable(false);
            }
        });
宰坚
2023-03-14

在API 21中,您可以通过在视图的<code>AccessibilityNodeInfo</code>上设置自定义操作来自定义操作名称。有两种方法:1)设置<code>AccessibilityDelegate。

无论哪种方式,您都将构造一个新的AccessibilityAction,并使用accessibilitynodeinfo . addaction在节点上设置它。

如果您选择使用委托,您将为单击操作设置自定义描述,如下所示:

view.setAccessibilityDelegate(new AccessibilityDelegate() {
  @Override
  public void onInitializeAccessibilityNodeInfo(
      View v, AccessibilityNodeInfo info) {
    super.onInitializeAccessibilityNodeInfo(v, info);

    // A custom action description. For example, you could use "pause"
    // to have TalkBack speak "double-tap to pause."
    CharSequence description = getResources().getText(R.string.my_click_desc);
    AccessibilityAction customClick = new AccessibilityAction(
            AccessibilityAction.ACTION_CLICK, description);
    info.addAction(customClick);
  }
});

如果您的应用程序以API为目标

颜黎昕
2023-03-14

自从alanv发布了他的答案后,<code>AccessibilityAction</code>似乎略有变化。下面是一个使用ViewCompat的工作解决方案:

ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat() {
    @Override
    public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
        super.onInitializeAccessibilityNodeInfo(host, info);
        // A custom action description. For example, you could use "pause"
        // to have TalkBack speak "double-tap to pause."
        CharSequence description = host.getResources().getText(R.string.my_click_desc);
        AccessibilityActionCompat customClick = new AccessibilityActionCompat(
                    AccessibilityNodeInfoCompat.ACTION_CLICK, description);
        info.addAction(customClick);
    }
});
 类似资料:
  • 在我的应用程序中,我有一个按钮。单击和双击按钮后,将执行单独的操作。我该怎么做?谢谢

  • 我有:我在水平滚动视图中有一组按钮 我想要的:我想要在双击按钮时检测事件 注意通常我处理点击事件使用.但是现在我怎么能实现同样的双击。如果有任何界面我也可以用于此目的,这将是有帮助的

  • 当视图具有事件单击并启用对讲时。我需要禁用视图中的“双击”音频。 我在android开发中使用可访问性。 请问我该怎么做?

  • 我试图找出如何改变文本视图文本上的长按。我已经包括一个屏幕截图,希望解释我正在努力做什么。 手机应用图片 绿色10.00的价格表。我想能够按住每个价格,并弹出键盘来编辑文本字段。我是编程新手,发现很难搜索合适的术语。 到目前为止,我尝试的代码是: 有912个价格,我将它们分组以引用每个价格的ID。而不是试图对个别价格应用任何代码。我知道的用法不正确。我这样说是为了帮助我理解我想做什么,即使那不起作

  • 我能找到的每个更改按钮图像的示例都显示了当单击该按钮时如何更改它。但是我如何点击一个切换按钮,并让它改变一个常规按钮的图像呢? 关于更多细节,我有两个按钮和一个onCheckedChanged事件: 当按下切换按钮并发生onCheckedChanged事件时,我需要将btn1的背景设置为新图像。

  • 我有一个扩展的自定义控件,其中我覆盖了,如下所示: 然后我对这个控件设置内容描述为“我的控件”,但是当可访问性焦点来到这个控件时,talkback仍然说出“我的控件,%x percent”。我不希望它说进展,即“百分之x”。相反,我想覆盖对讲文本,而不是它宣布“x百分之……”它会显示我设置的自定义文本,例如“选定的x值”。怎么做?