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及以后的版本。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android:onClick
# 与
# setOnClickListener区别
# Android
# onClick
# setOnClickListener对比
# Android ButtonOnClick事件的写法总结
# 详谈Android中onTouch与onClick事件的关系(必看)
# Android onClick按钮单击事件的四种常用写法
# Android响应事件onClick方法的五种实现方式小结
# Android ListView 子控件onClick正确获取position的方法
# Android使用TextView
# 设置onClick属性无效的解决方法
# 三种Android单击事件onclick的实现方法
# Android中button实现onclicklistener事件的两种方式
# Android 布局中的android:onClick的使用方法总结
# 是在
# 两种
# 希望能
# 为例
# 种方法
# 谢谢大家
# 用在
# 有一个
# 类中
# 什么区别
# layout_width
# layout_height
# match_parent
# apk
# schemas
# res
# http
# layout_centerInParent
# mybutton
# wrap_content
相关文章:
建站之星展会模版如何一键下载生成?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
建站之星Pro快速搭建教程:模板选择与功能配置指南
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站之星2.7模板:企业网站建设与h5定制设计专题
大同网页,大同瑞慈医院官网?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
文字头像制作网站推荐软件,醒图能自动配文字吗?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
教学网站制作软件,学习*后期制作的网站有哪些?
如何在建站之星绑定自定义域名?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
,网站推广常用方法?
如何通过FTP空间快速搭建安全高效网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
上海网站制作开发公司,上海买房比较好的网站有哪些?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何通过云梦建站系统实现SEO快速优化?
如何设置并定期更换建站之星安全管理员密码?
如何确认建站备案号应放置的具体位置?
宝塔建站助手安装配置与建站模板使用全流程解析
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
C++如何使用std::optional?(处理可选值)
如何快速搭建高效简练网站?
如何制作网站标识牌,动态网站如何制作(教程)?
建站之星导航如何优化提升用户体验?
如何在Windows虚拟主机上快速搭建网站?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
建站之星安装失败:服务器环境不兼容?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
广州建站公司哪家好?十大优质服务商推荐
学校免费自助建站系统:智能生成+拖拽设计+多端适配
招贴海报怎么做,什么是海报招贴?
如何快速使用云服务器搭建个人网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何做网站制作流程,*游戏网站怎么搭建?
建站之星展会模板:智能建站与自助搭建高效解决方案
建站之星在线客服如何快速接入解答?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
太原网站制作公司有哪些,网约车营运证查询官网?
建站之星如何实现PC+手机+微信网站五合一建站?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
做企业网站制作流程,企业网站制作基本流程有哪些?
网站网页制作专业公司,怎样制作自己的网页?
*请认真填写需求信息,我们会在24小时内与您取得联系。