Android点击事件的四种写法

Android点击事件的四种写法



一、Android点击事件的四种写法

1、点击事件的第一种写法 .  写一个内部类.实现点击事件的接口

bt.setOnClickListener(new MyButtonListener());

2、点击事件的第二种写法,匿名内部类

bt.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

callPhone();

}

});

3、点击事件的第三种写法:this-让这个activity实现事件接口,一般测试时候用,正式上线的时候不用。

class Test implements OnClickListener{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

}

}

4、点击事件的第四种写法  在xml文件里面定义 button点击的时候 调用什么方法

布局xml配置:

android:onClick="dailPhone"

然后在当前Activity中实现该事件的接口,再写一个dailPhone方法,

该方法名字与xml中配置的名字一样,且必须是public,而且要一个View对象,

因为底层的实现是反射且没有getDeclaredMethod()

public void dailPhone(View view){

callPhone();

}


二、四种事件监听应用场景

a) 内部类方式——注册的事件源比较少

b) 匿名内部类方法——事件源又多一点

c) 当前activity中this——事件源更多

d) 在ui的xml文件中,配置onClick属性(该方法不能设置为private)

因为底层的实现-反射没有getDeclaredMethod()

——测试的时候用,实际开发中不用,莫名其妙多的方法。


三、代码演示:

package cn.test.phone;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public
class MainActivity
extends Activity
implements OnClickListener {

private EditText etDail;

/**

* activity创建的时候 调用的方法

*/

@Override

protected
void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//1、设置activity显示的内容:一个xml文件

setContentView(R.layout.phone_ui);

//2、通过id寻找控件

etDail
= (EditText) MainActivity.this.findViewById(R.id.et_dail);

//寻找edittext  界面初始化的时候寻找控件 ,避免多次的查询

Button btDail
= (Button)
this.findViewById(R.id.bt_dail);

//3、给按钮注册一个点击事件的监听器

//点击事件的第一种写法 .  写一个内部类.实现点击事件的接口

//btDail.setOnClickListener(new MyButtonListener());

/*点击事件的第二种写法,匿名内部类

btDail.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

callPhone();

}

});*/

/*

点击事件的第三种写法:this-让这个activity实现事件接口,一般测试时候用,正式上线的时候不用。

//btDail.setOnClickListener(this);

*/    }

//    点击事件的第四种写法  在xml文件里面定义 button点击的时候 调用什么方法

public
void dailPhone(View view){

callPhone();

}

//方式三:让这个activity实现事件接口,一般测试时候用,正式上线的时候不用。

@Override

public
void onClick(View v) {

callPhone();

}

//方式一:点击事件的第一种写法 .  写一个内部类.实现点击事件的接口

/*private class MyButtonListener implements OnClickListener{

*//**

* 当按钮被点击的时候调用

*//*

@Override

public void onClick(View v) {

callPhone();

}

}*/

private
void callPhone() {

String phoneNumber = etDail.getText().toString();

Intent intent =
new Intent();

//设置意图动作

intent.setAction(Intent.ACTION_CALL);

//设置意图数据

//intent.setData(Uri.parse(phoneNumber));//问题i1:

intent.setData(Uri.parse("tel:"+phoneNumber));

//开启意图

MainActivity.this.startActivity(intent);

}

}

时间: 2024-10-20 12:47:51

Android点击事件的四种写法的相关文章

Android中点击事件的四种写法详解

Android中点击事件的四种写法使用内部类实现点击事件使用匿名内部类实现点击事件让MainActivity实现View.OnClickListener接口通过布局文件中控件的属性 第一种方法:使用内部类基本步骤如下: 新建一个MyOnClickListener类并实现View.OnClickListener接口 重写View.OnClickListener接口中的OnClick(View view)方法 给Button绑定一个监听器,并监听一个点击事件示例代码如下: public class

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

Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // ... private class MyListener implements OnClickListener{ public void Onclick(View v){ // ... 点击事件的响应 } } } 2. 採用匿名内部类 ? ?缺点:若是点击事件太多,则须要的匿名内部类太多 class M

Android中按钮的点击事件的四种写法

如题,在Android中按钮的点击事件有四种写法,如下图. 界面为四个Button+一个TextView+一个ImageView activity_main布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="

android点击事件的四种方式

第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; imp

android学习笔记003-点击事件的四种写法

一个按钮对点击事件相应的四种方法. 1.通过新建一个借口类来具体实现点击时间的响应: package com.example.dailcall; import android.support.v7.app.ActionBarActivity; import android.text.TextUtils; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.v

Android基础--点击事件的四种写法

1.定义内部类,实现点击事件,使用时将内部类对象传入事件源的setOnClickListener()方法中 private class MyClickListener implements View.OnClickListener{ @Override public void onClick(View v) { // 功能代码 } } 2.使用匿名内部类的方式实现点击事件 setOnClickListener(new View.OnClickListener() { @Override publ

android中点击事件的4种写法

android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法. 假设在布局文件中声明如下 ....... <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt_1" /> ....... 一.通过匿名内部类     主要的java代码如下

Android代码学习--点击事件的几种写法

由来:常规的写法参见<写一个apk>,每次点击按钮,按钮先查找文本框等元素,然后再操作,其实查找操作是很费时的操作,因此将该定义放到Activity的onCreate中:Oncreate只会执行一次,这样Activity一旦执行,就先创建好控件们了. 第二种方法:通过匿名内部类的方法:就是button.setOnClickListener(new OnClickListener(){ //实现OnClickListener接口 @Override public void onClick(Vie

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

1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM 的比较 3.常见adb指令 platform-tools/adb.exe adb.exe : android debug bridge android调试桥 adb devices:列出所以连接的设备 adb kill-server :杀死adb调试桥 adb start-server :启动adb