一、通过在activity_main.xml中,按钮button控件中添加onclick事件实现


在   activity_main.xml 对应的按钮Button中加入下面红色事件

<Button android:id="@+id/send_button"
        android:layout_width="wrap_content"
        android:layout_below="@id/content_edit"
        android:text="@string/send_button"
        android:onClick="call"
        android:layout_height="wrap_content"/>

在布局对应的Activity,即MainActivity.java中加入下面方法,下面是点击拨打号码的时候的相关操作

/**
     * 当拨打此号码的按钮被点击时触发此方法.
     * @param v
     */
    public void call(View v) {
        System.out.println("拨打电话……….");
       
        // 1. 取出输入框中的号码
        EditText etNumber = (EditText) findViewById(R.id.number);    // 输入框对象
        String number = etNumber.getText().toString();    // 将要拨打的号码
       
        // 2. 根据号码拨打电话
        Intent intent = new Intent();        // 创建一个意图
        intent.setAction(Intent.ACTION_CALL);        // 指定其动作为拨打电话
        intent.setData(Uri.parse("tel:" + number));    // 指定将要拨出的号码
        startActivity(intent);    // 执行这个动作
    }

二、采用匿名内部类的方式,在布局初始化的时候添加事件监听


在 activity_main.xml  不要添加onclick事件

在布局对应的Activity,即MainActivity.java的onCreate方法中,添加下面代码实现事件监听:

Button btnCall = (Button) findViewById(R.id.btn_call);
        btnCall.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("MainUI2 拨打电话.");
                call();
            }
        });

三、采用内部类的方式,在布局初始化的时候添加事件监听


在 activity_main.xml  不要添加onclick事件

在布局对应的Activity,即MainActivity.java的onCreate方法中,添加下面代码实现事件监听:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        // 必须执行此句代码. 执行父类的初始化操作.
        setContentView(R.layout.main);                // 设置当前界面显示的布局.
        Button btnCall = (Button) findViewById(R.id.btn_call);
        btnCall.setOnClickListener(new MyOnClickListener());
    }
   
class MyOnClickListener implements OnClickListener {

@Override
        public void onClick(View v) {
            System.out.println("拨打号码..");
            call();
        }
    }
   
    /**
     * 拨打电话的业务方法
     */
    private void call() {

//实现事件触发的要执行的逻辑

四、采用Activity实现接口的方式,实现事件监听


在 activity_main.xml  不要添加onclick事件,  让布局Activity实现接口OnClickListener,并实现接口的方法

public class MainActivity extends Activity implements OnClickListener

private void call() {

// 1. 取出输入框中的号码
        EditText etNumber = (EditText) findViewById(R.id.number);    // 输入框对象
        String number = etNumber.getText().toString();    // 将要拨打的号码
       
        // 2. 根据号码拨打电话
        Intent intent = new Intent();        // 创建一个意图
        intent.setAction(Intent.ACTION_CALL);        // 指定其动作为拨打电话
        intent.setData(Uri.parse("tel:" + number));    // 指定将要拨出的号码
        startActivity(intent);    // 执行这个动作
    }

@Override
    public void onClick(View v) {

call();
    }

Android实现点击事件的4种方式的更多相关文章

  1. android点击事件的四种方式

    android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...

  2. Android journey3 @点击事件的4种写法

    对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件: package com.itheima.phone; impo ...

  3. Android笔记---点击事件的四种写法

    Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // .. ...

  4. [Android]Java中点击事件的四种写法

    点击事件的必备条件:实现OnClickListener接口,重写onclick(View v)方法 以拨号简单案例为例,如下图效果: 逻辑流程: 获取点击对象,获取数据 给对象设置监听类 实现OnCl ...

  5. Android 触发Button按钮事件的三种方式

    1.新创建一个类 2.使用内部类 3.当多个button按钮时,为简化代码而创建的实例listener 贴代码: MainActivity.Java  文件: package com.android. ...

  6. Javascript(jQuery)中绑定页面上所有按钮点击事件的几种方式

    方法一:使用document对象查找所有的按钮 [javascript] view plain copy 在CODE上查看代码片派生到我的代码片 //按照dom的方式添加事件处理 function B ...

  7. js中点击事件方法三种方式的区别

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 (1)注意函数名没有双引号. ...

  8. Android四种点击事件和五中存储方式

    Android点击事件的四种实现方式 1.内部类实现onClickListenter接口 bt_login.setOnClickListener(new MyListener()); class My ...

  9. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

随机推荐

  1. 视觉差效果 - jqyery scrollTop原理

    原理是用页面的滚动高度scrollTop()来控制背景图的位置 附上源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...

  2. 【劳动节江南白衣Calvin 】我的后端开发书架2015

    自从技术书的书架设定为”床底下“之后,又多了很多买书的空间.中国什么都贵,就是书便宜. 不定期更新,在碎片化的阅读下难免错评. 书架主要针对Java后端开发,书单更偏爱那些能用简短流畅的话,把少壮不努 ...

  3. 前端面试题之js篇

    前端面试也可为是鱼龙混杂,各公司面试题的种类也大不相同,有的公司注重基础语法,面试题偏于ES,有的公司偏于页面逻辑,会考差一些js的应用,现将遇到过的题和典型的题整理一下. 1. 0.2-0.1 == ...

  4. github在eclipse中的配置

    http://www.cnblogs.com/yejiurui/archive/2013/07/29/3223153.html http://blog.csdn.net/shehun1/article ...

  5. centos 图形界面和命令行界面切换

    如果在图形界面下,按:Ctrl+Alt+F2进入命令行登录界面 切到root用户下, su root password 1, 关闭图形界面: init 3 关闭图形界面(XServer服务也会关闭) ...

  6. yii基础知识-应用

    应用是指请求处理中的执行上下文.它的主要任务是分析用户请求并将其分派到合适的控制器中以作进一步处理. 它同时作为服务中心,维护应用级别的配置.鉴于此,应用也叫做前端控制器. 应用由 入口脚本 创建为一 ...

  7. 【转】vsftp 遇到错误 500 OOPS: vsftpd: refusing to run with writable root inside chroot()--不错

    原文网址:http://linux.it.net.cn/e/server/ftp/2015/0227/13554.html 当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错 ...

  8. myeclipse中控制台日志比实际晚8小时解决方法及java日志处理

    今天终于忍不住要解决myeclipse控制台中日志显示比实际晚8小时的问题,开始以为myeclipse编辑器时间问题,后来想想不对,myeclipse控制台打印的是tomcat的日志,随后以为是log ...

  9. 返回本机的mac物理路径

     /// <summary>         ///    返回本机的mac物理路径         /// </summary>         /// <return ...

  10. Maximum Subarray / Best Time To Buy And Sell Stock 与 prefixNum

    这两个系列的题目其实是同一套题,可以互相转换. 首先我们定义一个数组: prefixSum (前序和数组) Given nums: [1, 2, -2, 3] prefixSum: [0, 1, 3, ...