view.performClick()触发点击事件
自动触发控件的点击事件
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()触发点击事件。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
android Java BASE64编码和解码一:基础
今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输。 类似这样的: {"name":"jike","age":"20","pic":"图片流"} , 把图片转化为图片流要用到 Base64 的技术。 1、Base64的作用 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。 由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下就可以了。 2、如何获得BASE64 代码,有两种方式 方式一:解决eclipse中无法直接使用Base64Encoder的问题 今天要使用Base64Encoder,却发现在Eclipse中无法找到该类,google了哈,原来Base64Encoder并不属于JDK标准库范畴,但是又包含在了JDK中。 解决方法:按照如下方法设置Eclipse导入%JAVA_HOME%\jre\lib目录下的rt.jar包即可,Project->Properties,选择Java Build Path设置项,再选择Libraries标签, AddExter...
- 下一篇
android 多屏幕适配 : 第一部分
1、在xml布局文件中,控件的宽度和高度用 dp ; 字体大小用 sp 2、根据屏幕的宽高来动态的适配 , 获取屏幕的宽高的两种方法: 第一种方法: /** * 屏幕的宽度 * 屏幕的高度 * @return */ public void initPhone1( Activity activity ){ int phone_Width = activity.getWindowManager().getDefaultDisplay().getWidth() ; //单位是 px int phone_Height = activity.getWindowManager().getDefaultDisplay().getHeight() ; //单位是 px } 这种方法会报警告,The method getWidth() from the type Display is deprecated 意思是这种方法已经过时,所以建议用第二种方法: 第二种方法: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().get...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Mario游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8编译安装MySQL8.0.19
- Hadoop3单机部署,实现最简伪集群