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;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private EditText etext; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取text文本框内容
etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
//根据id获取button按钮
Button btn = (Button) this.findViewById(R.id.button_dail);
//给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
btn.setOnClickListener(new MyOnClickListener());
} private class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View arg0) {
callphone();
}
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} private void callphone() {
String e_number = etext.getText().toString();
if(TextUtils.isEmpty(e_number)) {
Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
return ;
}
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+e_number));
startActivity(intent);
} }

第二种方式:采用匿名内部类实现点击事件

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;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private EditText etext; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取text文本框内容
etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
//根据id获取button按钮
Button btn = (Button) this.findViewById(R.id.button_dail);
//给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
// btn.setOnClickListener(new MyOnClickListener());
//第二种方式:采用匿名内部类实现点击事件
btn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
callphone();
}
}); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} private void callphone() {
String e_number = etext.getText().toString();
if(TextUtils.isEmpty(e_number)) {
Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
return ;
}
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+e_number));
startActivity(intent);
} }

第三种方式:采用Activity实现OnClickListener接口方式来实现点击事件

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;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private EditText etext; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取text文本框内容
etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
//根据id获取button按钮
Button btn = (Button) this.findViewById(R.id.button_dail);
//给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
// btn.setOnClickListener(new MyOnClickListener());
//第二种方式:采用匿名内部类实现点击事件
/*btn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
callphone();
}
});*/
//第三种方式:采用Activity实现OnClickListener接口方式来实现点击事件
btn.setOnClickListener(this); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} private void callphone() {
String e_number = etext.getText().toString();
if(TextUtils.isEmpty(e_number)) {
Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
return ;
}
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+e_number));
startActivity(intent);
} @Override
public void onClick(View arg0) {
callphone();
} }

第四种方式:在布局中绑定一个点击方法

第一步:在布局文件中添加android:onClicke属性

<Button
android:onClick="dailButtonOnClick"
android:id="@+id/button_dail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/editText1"
android:text="@string/dail"
/>

第二步:在MainActivity中添加dailButtonOnClick方式

private void dailButtonOnClick(){
callphone();
}

android点击事件的四种方式的更多相关文章

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

    Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法 ...

  2. [Android] 点击事件的四种写法

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

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

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

  4. 转--Android按钮单击事件的四种常用写法总结

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下     很多学习Android程序设计的人都会发现每个人对代码的 ...

  5. Android按钮单击事件的四种常用写法

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下 很多学习Android程序设计的人都会发现每个人对代码的写法都有 ...

  6. jQuery绑定事件的四种方式:bind、live、delegate、on

    1.jQuery操作DOM元素的绑定事件的四种方式 jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undele ...

  7. Android异步更新UI的四种方式

    Android异步更新UI的四种方式 2015-09-06 09:23 segmentfault 字号:T | T 大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中 ...

  8. SWT组件添加事件的四种方式

    在我们CS日常开发过程中会经常去为组件添加事件,我们常用的为AWT与SWT.SWT的事件模型是和标准的AWT基本一样的.下面将按照事件的四种写法来实现它. 一.匿名内部类的写法 new MouseAd ...

  9. Java添加事件的四种方式

    Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author ...

随机推荐

  1. Java面试题整理2

    多线程部分 并行和并发的区别? 并行指两个或多个事件同一时刻发生:并发指两个或多个事件同一时间间隔发生. 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件. 线程和进程的区别? 进程是程序运 ...

  2. 初识shell

    shell简介 在计算机科学中,Shell俗称壳(用来区别于核),Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的 ...

  3. javascript中常见的三种开发模式

    一.单例模式: 所谓单例模式,即保证一个类只有一个实例,并提供一个访问它的全局访问点. <script type="text/javascript"> //一个类有某个 ...

  4. keil编译运行错误,缺少error:#5:#include "core_cm3.h"

    用Keil  vision5编译时出现以下错误:error:  #5: cannot open source input file "core_cm3.h": No such fi ...

  5. object-c 常用判断null的宏定义,如果是null直接返回@""

    #define checkNull(__X__) (__X__) == [NSNull null] || (__X__) == nil ? @"" : [NSString stri ...

  6. 学习Emmet

    学习Emmet 在进行Web开发时,就免不了需要编写html文件,如何快速(偷懒^-^)的进行编写html,是个大问题,上网找了一下,发现了一个好东西 ,视频教程可以看下小马技术Emmet爆速开发, ...

  7. 05-基础widgets

    05-基础widgets 介绍 Widget的功能是"描述一个UI元素的配置数据",Widget并不是表示最终绘制在设备屏幕上的显示元素,而只是显示元素的一个配置数据.Flutte ...

  8. 20155311《Java程序设计》实验五(网络编程与安全)实验报告

    20155311<Java程序设计>实验五(网络编程与安全)实验报告 一.实验内容及步骤 任务一: 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实现从上面 ...

  9. 多级反馈序列c语言模拟实现

    多级反馈队列调度算法: 1.设置多个就绪队列,并给队列赋予不同的优先级数,第一个最高,依次递减. 2.赋予各个队列中进程执行时间片的大小,优先级越高的队列,时间片越小. 3.当一个新进程进入内存后,首 ...

  10. 20155339《java程序设计》第一次实验报告

    20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...