我正在尝试使用AccessibilityManager和TalkBack触发自定义AccessibilityEvent
。
该事件的用例是,当用户单击操作栏时,片段会轮询对象列表,然后根据列表的大小调整其 AccessibilityEvent 内容。
当我尝试运行它时,我没有收到预期的Talkback消息。我很确定我在实例化AccessibilityEvent时错过了一些基本的东西。
我也不确定我是否需要使用,或者如何在这里应用AccessibilityServer
s,因为回调来自MenuItem
而不是View
。我知道我可以调用findViewById
来获取此MenuItem的视图,但我对这些API不是很了解。
关于这两点的任何指导都是非常好的!
所讨论的问题基本上由以下伪代码描述:
public class MyFragment extends Fragment {
//...
private List<Pojo> mPojoList;
//...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.the_id_for_my_menuitem) {
if (booleanCheck() && !mPojoList.isEmpty()) {
//create the Accessibility event
final AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_CLICKED);
event.setContentDescription(String.format("deleting %2d pojos", mPojoList.size()));
//Send a custom accessibility event to let the user know that we're deleting X objects.
final AccessibilityManager mgr = (AccessibilityManager) this.getActivity().getSystemService(Context.ACCESSIBILITY_SERVICE);
//PROBLEM: We're not seeing this event come through in TalkBack.
mgr.sendAccessibilityEvent(event);
//Delete the objects.
myDeleteObjectsFunction();
}
}
}}
虽然这是一个老问题,但我将公布我的答案,因为之前给出的答案对我不起作用。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.the_id_for_my_menuitem) {
if (booleanCheck() && !mPojoList.isEmpty()) {
AccessibilityManager manager = (AccessibilityManager)this.getSystemService(Context.ACCESSIBILITY_SERVICE);
if(manager.isEnabled()){
AccessibilityEvent event = AccessibilityEvent.obtain();
event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
event.setClassName(getClass().getName());
event.getText().add(*yourString*);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
event.setSource(findViewById(*yourButton*));
}
manager.sendAccessibilityEvent(event);
}
}
}
}
尝试使用 View 对象触发辅助功能事件。
AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_CLICKED);
event.setContentDescription(String.format("deleting %2d pojos", mPojoList.size()));
View view = getActivity().findViewById(R.id.child_view);
ViewParent parent = view.getParent();
if (parent != null) {
parent.requestSendAccessibilityEvent(view, event);
}
在我的应用程序中,我有一个通知要显示。 比方说,当显示通知时,我想按“是”进入活动并隐藏通知,按“否”什么都不做只是隐藏通知。 我尝试了这段代码,但是onclick不是onclckpendingent,我不能做任何我想做的事情。 我怎么能这样做?
问题内容: 似乎是一个简单的问题,但解决其他问题的方法似乎对我没有用。 试图通过单击按钮来触发AJAX请求,但似乎并未触发。 HTML示例 javascript 问题答案: 您拥有的代码在拨弄中工作得很好。初始页面加载后,按钮是否通过AJAX动态呈现? 用 代替
本文向大家介绍Android 自定义Button控件实现按钮点击变色,包括了Android 自定义Button控件实现按钮点击变色的使用技巧和注意事项,需要的朋友参考一下 效果图如下所示: 一、shape 样式:(在drawable新建--》new--》Drawable resource file 在父级标签selector添加Item ) 二、style 样式: 三、Button控件调用styl
> 标高,同时具有自定义可绘制。 在用户触摸的地方启动涟漪效果。
问题内容: 这是我想做的事情:单击页面上的一个按钮,这又使(2)事情发生: 显示一个ModalPopup,以防止用户按下任何按钮或更改值 在方法后面调用我的代码,完成后隐藏ModalPopup 这是ASP标记: 现在,这是我在C#代码后面的代码: 为什么不起作用?ModalPopup可以完美显示,但是btnSaveData_Click事件从不触发。 更新: 第一个建议对我不起作用。我还尝试了您的第
当按钮单击时,是否有任何机制显式地触发按键事件。当我单击java UI中命名为“+”的按钮时,它将显式地触发“+”键按下事件。