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
投稿

猜你喜欢

  • jQuery 动画效果代码分享

    2023-11-24 00:10:12
  • java split用法详解及实例代码

    2022-06-27 06:48:19
  • Java Web实现添加定时任务的方法示例

    2023-11-25 02:12:15
  • 3种C# 加载Word的方法

    2021-06-05 21:06:41
  • 使用BindingResult 自定义错误信息

    2023-09-02 17:43:01
  • Java实现为Word每一页设置不同图片水印的效果

    2023-01-30 07:10:04
  • Android编程简易实现XML解析的方法详解

    2023-12-25 18:51:59
  • Java中的zookeeper常用命令详解

    2022-12-07 05:46:35
  • AndroidStudio接入Unity工程并实现相互跳转的示例代码

    2023-08-06 23:34:51
  • Spring Cloud + Nacos + Seata整合过程(分布式事务解决方案)

    2021-08-31 04:26:52
  • Springboot上传文件时提示405问题及排坑过程

    2022-12-13 03:03:58
  • C#简单爬虫案例分享

    2023-04-14 08:44:13
  • java编程之基于SpringBoot框架实现扫码登录

    2023-02-14 02:39:28
  • Java 实战项目锤炼之医院门诊收费管理系统的实现流程

    2022-08-10 11:35:08
  • 关于Intellij IDEA中的Version Control问题

    2021-12-27 08:42:01
  • Mybatis @SelectKey用法解读

    2022-04-18 18:01:35
  • mvn中dependencyManagement的使用详解

    2021-11-05 10:19:20
  • java实现砸金蛋抽奖功能

    2022-02-22 01:26:50
  • Spring Boot 整合 Apache Dubbo的示例代码

    2021-10-09 03:52:07
  • Java Excel透视表相关操作实现代码

    2022-02-27 00:11:01
  • asp之家 软件编程 m.aspxhome.com