一、通过在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. php+mysql将大数据sql文件导入数据库

    <?php $file_name = "d:test.sql"; $dbhost = "localhost"; $dbuser = "root& ...

  2. 转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)

    转载网址:http://blog.csdn.net/bestlxm/article/details/6800077 js jquery 怎么获取当前页面的url,获取frameset中指定的页面的ur ...

  3. var_export函数的使用方法

    var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码.var_export必须返回合法的php代码, 也就是 ...

  4. iOS学习之界面间传值

    /** *  界面间传值步骤 1.界面传值第一种场场景:从前往后传值. 秘诀:属性传值.(葵花宝典). 招式:(1).在后一个界面定义属性,属性的类型和传出数据类型一致. (2).在进入下一界面之前, ...

  5. AFNetworiking与ASIHttpRequest对比

    在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法, ...

  6. 正式学习React(五) react-redux源码分析

    磨刀不误砍柴工,咱先把react-redux里的工具函数分析一下: 源码点这里  shallowEqual.js export default function shallowEqual(objA, ...

  7. form 表单练习

    创建战网通行证账号,开启您的冒险之旅.<form>    <table border="0">        <tr>            & ...

  8. LeetCode_Pascal's Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  9. HDU4532(组合DP)

    题目:安排座位 解析:http://www.douban.com/note/269136472/ #include <iostream> #include <string.h> ...

  10. java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade

    2012-10-4 19:50:37 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for se ...