该事件的用例是当用户单击 *** 作栏时,该片段轮询对象列表,然后根据列表的大小简化其AccessibilityEvent内容.
当我尝试运行它时,我没有收到预期的TalkBack消息.我很确定我缺少一些基本的实例化AccessibilityEvent.
我也不确定是否需要使用或如何在这里应用AccessibilityDelegates,因为回调来自MenuItem而不是VIEw.我知道我可以调用findVIEwByID来获取这个MenuItem的视图,但我对这些API知之甚少.
关于这两点的任何指导都会很棒!
有问题的问题基本上由以下伪代码描述:
public class MyFragment extends Fragment {//...private List<Pojo> mPojoList;//...@OverrIDepublic 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(); } }}}解决方法 尝试使用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);}总结
以上是内存溢出为你收集整理的Android从ActionBar按钮单击启动自定义辅助功能事件全部内容,希望文章能够帮你解决Android从ActionBar按钮单击启动自定义辅助功能事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)