performclick?android中performclick()方法的作用
大家好,感谢邀请,今天来为大家分享一下performclick的问题,以及和android中performclick()方法的作用的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
android中performclick()方法的作用
使用 PerformClick方法以编程方式引发按钮的 Click事件。
操作过程
在“新建项目”对话框中的“模板”窗格中,单击“Windows窗体应用程序”,然后单击“确定”。
一个新的 Windows窗体项目随即打开。
将两个 Button控件从“工具箱”中拖动到窗体上。
在窗体中,双击第一个按钮(button1)以创建 Click事件处理程序。
在 button1_Click事件处理程序中,键入以下代码行。MessageBox.Show("button1.Click test.");
右击这些代码,然后单击“视图设计器”。
双击第二个按钮(button2)以创建 Click事件处理程序。
在 button2_Click事件处理程序中,键入以下代码行。button1.PerformClick();
运行程序OK。
Android视图performClick和callOnclick的区别
作用: View类的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应用程序开发人员可以利用这些服务,使他们的应用程序更贴近用户。
如何用C#代码触发button-click事件
一、基本的调用方法
1、button1.PerformClick();
2、button1_Click(null,null);
3、button_Click(null,newEventArgs());
二、利用反射调用
//建立一个函数
private void callOnClick(Button btn)
{
//建立一个类型
Type t= typeof(Button);
//参数对象
object[] p= new object[1];
//产生方法
MethodInfo m= t.GetMethod("OnClick", BindingFlags.NonPublic| BindingFlags.Instance);
//参数赋值。传入函数
p[0]= EventArgs.Empty;
//调用
m.Invoke(btn, p);
return;
}
(此处空一行)
//调用例子。
//调用Button1的onclick
callOnClick(Button1);
(此处空一行)
//调用Button5的onclick
callOnClick(Button5);
扩展资料:除了上述的button-click事件,还可以调用更多的事件
private void callButtonEvent(Button btn, string EventName)
{
//建立一个类型
Type t= typeof(Button);
//参数对象
object[] p= new object[1];
//产生方法
MethodInfo m= t.GetMethod(EventName, BindingFlags.NonPublic| BindingFlags.Instance);
//参数赋值。传入函数
//获得参数资料
ParameterInfo[] para= m.GetParameters();
//根据参数的名字,拿参数的空值。
p[0]= Type.GetType(para[0].ParameterType.BaseType.FullName).GetProperty("Empty");
//调用
m.Invoke(btn, p);
return;
}
(此处空一行)
//调用例子。
//调用Button1的onclick
callButtonEvent(Button1,"OnClick");
(此处空一行)
//调用Button5的OnKeyPress
callButtonEvent(Button5,"OnKeyPress");
...touchlistener为什么会出现override performclick警告
由源码可以看出,只要是使用了view.setOnClickListener()方法设置监听器,就会自动触发view.performClick()。
需要注意的是,如果同时使用了view.setOnTouchListener()方法,则有可能存在拦截view.performClick()的响应事件,因为当view.OnTouchEvent()在event.getAction()== MotionEvent.ACTION_DOWN时返回false,系统会认为view不需要处理Touch事件,则后续的Touch事件(move、up、click)就不会被传进来,所以也不会触发view.performClick(),而view.setOnTouchListener()相当于是重写了view.OnTouchEvent(),所以在写view的TouchListener处理时,需要留意view是否存在点击事件监听,如果有,则在适当的位置使用view.performClick()触发点击事件。
关于performclick到此分享完毕,希望能帮助到您。