设置选项菜单android对讲的内容描述

设置选项菜单android对讲的内容描述,android,menuitem,optionmenu,talkback,Android,Menuitem,Optionmenu,Talkback,我正在为应用程序实现“大声朗读”或“对讲”。一切都在使用contentDescription文本,但在选项菜单中,我没有发现与contentDescription相关的内容,我希望系统读取“菜单”+项名称 例如:我的菜单有两项:“创建新文件夹”和“删除当前文件夹”,当前,当我聚焦菜单项(支持轨迹球和蓝牙键)时,系统可以准确地说出菜单文本。但我希望它更像“1:菜单创建新文件夹”和“2:菜单删除当前文件夹” 那么,我如何更改已读文本?当蓝牙键盘按向上/向下键时,如何获得聚焦的菜单项?作为我的调查,在

我正在为应用程序实现“
大声朗读
”或“
对讲
”。一切都在使用
contentDescription
文本,但在选项菜单中,我没有发现与
contentDescription
相关的内容,我希望系统读取
“菜单”+项名称

例如:我的菜单有两项:“创建新文件夹”和“删除当前文件夹”,当前,当我聚焦菜单项(支持轨迹球和蓝牙键)时,系统可以准确地说出菜单文本。但我希望它更像“1:菜单创建新文件夹”和“2:菜单删除当前文件夹”


那么,我如何更改已读文本?当蓝牙键盘按向上/向下键时,如何获得聚焦的
菜单项

作为我的调查,在Android内部源代码中,class
ActionMenuItemView.java
方法
setTitle(CharSequence title)
,源代码还设置
setContentDescription(title)
,所以Android会默认读取菜单项的文本。我不知道在这种情况下,核心为何如此不灵活

更新:

谢谢你的帮助

Google刚刚在API 26(
Android O
)上的
MenuItem
类中添加了
setContentDescription(CharSequence contentDescription)
方法

更新: 谢谢你的新消息。
看起来所有版本现在都支持使用
android support v4
库的菜单项
setContentDescription

似乎他们刚刚将
setContentDescription(CharSequence contentDescription)
方法添加到API 26(android O)上的
MenuItem
类中

v4支持库中的MenuItemCompat具有

android.support.v4.view.MenuItemCompat.setContentDescription(MenuItem menuItem, CharSequence contentDescription) 
在预Oreo设备上向后兼容的方法

对于AndroidX,请参见以下答案:

回答AndroidX后的问题

androidx.core.view.MenuItemCompat.setContentDescription(menuItem,  contentDescription)
全样本:

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.client_menu_close, menu);
    super.onCreateOptionsMenu(menu, inflater);

    MenuItem closeMenu = menu.findItem(R.id.client_menu_close_action);
    androidx.core.view.MenuItemCompat.setContentDescription(closeMenu, R.string.str_accessibility_client_screen_close);
}

设置btn.setContentDescription(“菜单:“+”创建blabla”)时会发生什么;然后是btn.requestFocus()?您是否提出了可能的解决方案或想法?我们可以用扩展覆盖它吗?因为我有,我相信,类似的问题,很抱歉迟了反馈,但我仍然没有解决我的问题。不用担心。是的,我也没有。于是,我做了一个空标签,继续前进。看起来,Spotify也不可能解决这个问题。当我检查时,他们也有类似的问题。是的,我看到这个方法现在可以在Android O开发者预览版上使用,但没有经过测试。但是,我希望这能奏效。另外,在菜单的XML中添加
app:contentDescription
(而不是
android:contentDescription
)对我来说似乎适用于早期版本。你能提供一个更好的例子吗?我的android studio无法识别该代码的“查看”部分。也许需要在页面顶部和gradle.app中导入它?此时,您可能应该使用AndroidX而不是V4支持库。请参阅以获取AndroidX支持。您需要在build.gradle文件中包含AndroidX依赖项。