view.performClick()触发点击事件

view.performClick()触发点击事件view.performClick(),主动触发点击

大家好,又见面了,我是你们的朋友全栈君。

1、主要作用

     自动触发控件的点击事件

2、界面的布局文件  activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <Button        android:id="@+id/bt"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="点击一下" />    <Button        android:id="@+id/bt2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/bt"        android:text="@string/hello_world" /></RelativeLayout>

3、MainActivity 代码

package com.android;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {    Button button1 ;    Button button2 ;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main );        button1 = (Button) findViewById( R.id.bt ) ;         button1.setOnClickListener( new OnClickListener() {            @Override            public void onClick(View v) {                button2.performClick();  //调用 button2的点击事件            }        });        button2 = (Button) findViewById( R.id.bt2 ) ;        button2.setOnClickListener( new OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText( MainActivity.this , "点击了", Toast.LENGTH_SHORT).show();            }        });    }}

4、注意事项

   如果同时使用了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()触发点击事件

附上原文链接:http://www.cnblogs.com/zhaoyanjun/p/4498008.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149385.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 激光slam理论与实践_SLAM算法

    激光slam理论与实践_SLAM算法激光SLAM笔记(1)——激光SLAM框架和基本数学理论1、SLAM分类1.1、基于传感器的分类1.2、基于后端的分类2、激光SLAM算法(基于优化的算法)2.1、激光SLAM算法的流程2.2、激光SLAM常用算法2.3、激光SLAM在实际环境中的问题3、激光SLAM算法介绍3.1、2D激光SLAM3.2、3D激光SLAM1、SLAM分类1.1、基于传感器的分类1.2、基于后端的分类 …

    2022年8月23日
    5
  • ❤️爆肝3万字,最硬核丨Mysql 知识体系、命令全集 【建议收藏 】❤️

    ❤️爆肝3万字,最硬核丨Mysql 知识体系、命令全集 【建议收藏 】❤️Mysql知识体系、命令全集

    2022年8月22日
    7
  • 脚手架专项施工方案范本_手写react项目脚手架

    脚手架专项施工方案范本_手写react项目脚手架前言如何快速搭建一个httprunner项目呢?我们可以使用脚手架,脚手架就是自动地创建一些目录,形成一个项目的架构,不需要我们再手动的去创建查看创建新项目的命令先来查看一下帮助命令httpr

    2022年7月30日
    2
  • gridview样式模板_css列表样式

    gridview样式模板_css列表样式在标签中加入一个样式表,并定义它.                   .GridViewStyle              {                     border-right:2pxsolid#A7A6AA;                   border-bottom:2pxsolid#A7A6AA;             

    2022年9月16日
    0
  • SSDP 协议_Smb协议

    SSDP 协议_Smb协议1.组播地址2.SSDP,简单服务发现技术组播地址为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层的组播MAC地址。1.IP组播地址(1)       IPv4组播地址IANA(InternetAssignedNumbersAuthority,互联网编号分配委员会)将D类地址空间分配给IP

    2022年10月11日
    0
  • Eclipse SVN冲突详细解决方案「建议收藏」

    Eclipse SVN冲突详细解决方案「建议收藏」大家一起开发,难免有时会同时修改同一个文件,这样就要学会解决冲突。当大家更新代码,发现以下情况的时候,就说明你的修改的文件和服务器的文件产生了冲突(一般是别人也改了同一个文件)。1)和服务器有冲突的文件:2)点击Update以后,如果出现以下情况(出现四个文件),就说明需要解决冲突。如何解决冲突:出现文件冲突的时候:你有四个选择:1以我修改的为准,不管服务

    2022年10月14日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号