Android onClick方法与setOnClickListener方法对比
作者:lqh 时间:2022-02-09 22:21:40
Android onClick 与 setOnClickListener区别
为Android Widgets添加点击事件处理函数又两种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数。另一个是直接在代码中添加setOnClickListener函数。两者什么区别呢?以Button控件为例讲解一下。
方法一
在Xml中添加onClick属性
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Press Me"
android:onClick="buttonClick"/>
</RelativeLayout>
在代码中添加对应的函数buttonClick,注意要添加到当前Activity对应的java类中。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void buttonClick(View view) {
Toast.makeText(this, "Button was clicked", Toast.LENGTH_SHORT).show();
}
// ....
}
方法二
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.mybutton);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Button was clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
两者的共同点
两者底层没有区别。
两者的区别
使用第一种方法的注意事项:
1. 事件处理函数必须是public的。
2. 事件处理函数必须在Activity中定义。
3. 事件处理函数必须有一个View类型的参数。
4. 只能用在API Level 4及以后的版本。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.cnblogs.com/graphics/p/4680073.html
标签:Android,onClick,setOnClickListener
0
投稿
猜你喜欢
JAVA基本概念详解
2022-06-09 11:54:53
Android中Shape的用法详解
2023-12-21 14:05:44
解决@Api注解不展示controller内容的问题
2022-08-29 21:16:38
android上的一个网络接口和图片缓存框架enif简析
2022-10-06 07:37:56
Android实现拍照或者选取本地图片
2022-06-16 03:58:31
自己写的java日志类和方法代码分享
2021-08-18 19:34:13
Android使用Handler实现下载文件功能
2023-05-21 03:23:08
Android检查手机网络状态及网络类型的方法
2023-12-03 19:35:49
Android简单实现启动画面的方法
2022-08-25 17:54:55
Java适配器模式_动力节点Java学院整理
2021-09-06 10:50:53
开源一个c# 新的雪花算法
2022-01-20 16:08:56
C#中文随机数实现方法
2023-12-07 20:56:30
spring cloud升级到spring boot 2.x/Finchley.RELEASE遇到的坑
2022-01-04 20:40:56
用java实现的获取优酷等视频缩略图的实现代码
2022-03-11 14:19:32
spring boot集成p6spy的最佳实践
2023-04-11 23:40:36
Java使用反射创建对象示例
2023-10-14 11:31:44
java 进制转换实例详解
2023-07-05 11:53:45
Android实现缓存大图到SD卡
2022-07-13 07:13:50
JAVA多线程知识汇总
2021-08-03 09:04:47
SpringBoot+Hutool+thymeleaf完成导出Excel的实现方法
2023-09-05 17:39:10