Android视图performClick和callOnclick的区别

来源:互联网 发布:mac命令行终端 颜色 编辑:程序博客网 时间:2024/05/18 02:30

作用 : View类的performClickcallOnclick函数都可以实现,不用用户手动点击,直接触发View的点击事件。

区别有如下两点:

1) API等级

performClick是在API 1中加入
callOnClick是在API 15 中加入

2)代码实现层面

看两个方面的代码实现,如下:

 /**     * Directly call any attached OnClickListener.  Unlike {@link #performClick()},     * this only calls the listener, and does not do any associated clicking     * actions like reporting an accessibility event.     *     * @return True there was an assigned OnClickListener that was called, false     *         otherwise is returned.     */    public boolean callOnClick() {        ListenerInfo li = mListenerInfo;        if (li != null && li.mOnClickListener != null) {            li.mOnClickListener.onClick(this);            return true;        }        return false;    }
 /**     * Call this view's OnClickListener, if it is defined.  Performs all normal     * actions associated with clicking: reporting accessibility event, playing     * a sound, etc.     *     * @return True there was an assigned OnClickListener that was called, false     *         otherwise is returned.     */    public boolean performClick() {        final boolean result;        final ListenerInfo li = mListenerInfo;        if (li != null && li.mOnClickListener != null) {            playSoundEffect(SoundEffectConstants.CLICK);            li.mOnClickListener.onClick(this);            result = true;        } else {            result = false;        }   sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);        return result;    }

  从代码中可以看出,callOnClickperformClick的简化版,不包含点击播放声音,不具有辅助功能,那么什么是辅助功能,给出官方介绍如下:

  许多Android用户有不同的能力(限制),这要求他们以不同的方式使用他们的Android设备。这些限制包括视力,肢体或与年龄有关,这些限制阻碍了他们看到或充分使用触摸屏,而用户的听力丧失,让他们可能无法感知声音信息和警报。
  Android提供了辅助功能的特性和服务帮助这些用户更容易的使用他们的设备,这些功能包括语音合成、触觉反馈、手势导航、轨迹球和方向键导航。Android应用程序开发人员可以利用这些服务,使他们的应用程序更贴近用户。

1 0
原创粉丝点击