Android视图performClick和callOnclick的区别
2017-02-09 16:10
260 查看
作用 : View类的
区别有如下两点:
1) API等级
2)代码实现层面
看两个方面的代码实现,如下:
从代码中可以看出,
许多Android用户有不同的能力(限制),这要求他们以不同的方式使用他们的Android设备。这些限制包括视力,肢体或与年龄有关,这些限制阻碍了他们看到或充分使用触摸屏,而用户的听力丧失,让他们可能无法感知声音信息和警报。
Android提供了辅助功能的特性和服务帮助这些用户更容易的使用他们的设备,这些功能包括语音合成、触觉反馈、手势导航、轨迹球和方向键导航。Android应用程序开发人员可以利用这些服务,使他们的应用程序更贴近用户。
performClick和
callOnclick函数都可以实现,不用用户手动点击,直接触发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; }
从代码中可以看出,
callOnClick是
performClick的简化版,不包含点击播放声音,不具有辅助功能,那么什么是辅助功能,给出官方介绍如下:
许多Android用户有不同的能力(限制),这要求他们以不同的方式使用他们的Android设备。这些限制包括视力,肢体或与年龄有关,这些限制阻碍了他们看到或充分使用触摸屏,而用户的听力丧失,让他们可能无法感知声音信息和警报。
Android提供了辅助功能的特性和服务帮助这些用户更容易的使用他们的设备,这些功能包括语音合成、触觉反馈、手势导航、轨迹球和方向键导航。Android应用程序开发人员可以利用这些服务,使他们的应用程序更贴近用户。
相关文章推荐
- 实例区别onClick和onDBClick两事件方法
- onclick,onclientclick和onserverclick的区别
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android onTouchEvent, onClick及onLongClick的调用机制
- android: GridView onFling/onItemClickListener 滑动与点击事件 冲突
- Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick )
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别
- 视图中的构造函数、OnCreate和OnInitiaUpDate进行初始化的区别
- Call multiple URLs on single click of af:goLink in Oracle ADF
- Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick )
- Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick )
- Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick )
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android onTouchEvent, onClick及onLongClick的调用机制
- 实例区别onClick和onDBClick两事件方法
- Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick )
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android onTouchEvent, onClick及onLongClick的调用机制