Android 点击事件,4种回调。
1. 继承监听接口。
2. xml方式 : 设置 android:onClick
3. 内部类
4. 匿名类
---------------------------------------------------------------
1. 实现 OnClickListener 接口
package com.itheima28.caller; import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText; /**
* @author andong
* 程序刚运行就显示的界面
*/
public class MainUI4 extends Activity implements OnClickListener { /**
* 当界面刚被创建时回调此方法
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 必须执行此句代码. 执行父类的初始化操作. setContentView(R.layout.main); // 设置当前界面显示的布局. // 关联方法
Button btnCall = (Button) findViewById(R.id.btn_call);
// 注册监听
btnCall.setOnClickListener(this);
} //
// 如果用内部类,则外部类,不需要实现OnClickListener 接口
// class MyOnClickListener implements OnClickListener {
//
// @Override
// public void onClick(View v) {
// System.out.println("MainUI3 拨打号码..");
// call();
// }
// } /**
* 拨打电话的业务方法
*/
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) {
System.out.println("MainUI4 拨打号码..");
call();
}
}
2 . xml的方式
在布局文件xml,添加onClick事件,然后,从代码中,
<Button
android:id ="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_contetn"
android:text="单击"
android:onClick="clicktest" //添加事件
/>
从代码中,添加clicktest方法,原型,要和View.OnClickListener中没有实现的原型一样,即添加 (View v)的方法参数
// 方法的原型,与 OnClickListener 中定义的方法原型,一致。
public void clicktest(View view){ Log.i("Test","以xml方式,设置事件")
}
3. 内部类
这种方式,容易理解。
// 1. 声明控件
private Button btn; @override
protected void onCreate(Bundle savedInstanceState) {
supper.onCreate(savedInstanceState); setContentView(R.layou.activity_main); // 2. 关联控件
btn =(Button)findViewById(R.id.button1); Listener list = new Listener();
// 3. 注册监听
btn.setOnClickListener(
//实现接口的类对象
list
);
} //内部类
class Listener implements View.OnClickListener { @override
public void onClick(View v){
//回调方法
Log.i("TEST","被单击了");
} }
Android 点击事件,4种回调。的更多相关文章
- android点击事件的四种方式
android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...
- Android中点击事件的四种写法详解
Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法 ...
- Android点击事件通过kotlin几种实现方式总结
一般来说,Android点击事件通过kotlin有以下几种实现方式: 1.通过全局接口View.OnClickListener实现,代码如下 //class MainActivity : AppCom ...
- Android点击事件
Android点击事件 备注 全局实现View.OnClickListener 或许需要将MainActivity设置为public 注册事件 btn_login.setOnClickListener ...
- Android笔记——Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- Android学习-----Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- [Android] 点击事件的四种写法
点击事件的必备条件:实现OnClickListener接口,重写onclick(View v)方法 以拨号简单案例为例,如下图效果: 逻辑流程: 获取点击对象,获取数据 给对象设置监听类 实现OnCl ...
- Android studio代码实现打电话+点击事件四种方式
Android系统架构(重点) 第一层:应用层Application 第二层:应用框架层Application Framework 第三层:Android底层类库层 Libraries.Dalvik虚 ...
- Android点击事件(click button)的四种写法
在学习android开发和测试的时候发现不同的人对于click事件的写法是不一样的,上网查了一下,发现有四种写法,于是想比较一下四种方法的不同 第一种方法:匿名内部类 代码: package com. ...
- android中点击事件的4种写法
android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法. 假设在布局文件中声明如下 ....... <Button android:la ...
随机推荐
- Android稳定性测试之Log分析
做手机自动化测试已经快两年了,很久没写Blog了.今天抽空总结一下. 用自动化做稳定性测试,主要是为了发现系统或者应用出现FC/ ANR/ Reboot/ Freeze等问题. 先详细说下各种问题对应 ...
- git 和 github 使用笔记
想干这么一件事:写一个web自动化测试的项目,部署在公司内网的小服务器上. 我想拐个弯干这件事:公司有一个工作用的windows电脑,还有一个linux Ubuntu11.04的小测试服务器.我在本地 ...
- [ZETCODE]wxWidgets教程八:组件专题1
本教程原文链接:http://zetcode.com/gui/wxwidgets/widgets/ 翻译:瓶哥 日期:2013年12月12日星期四 邮箱:414236069@qq.com 主页:htt ...
- Sicily1099-Packing Passengers-拓展欧几里德算法
最终代码地址:https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1099.c 做这题的时候查了别人的做法花了半天都没 ...
- 构建CMDB的一些启发
开篇感言: 自从学习python自动化开发以来,一直都是从技术的角度来看待一切.以为技术就是王道.但显然我是一只井底之蛙.其实技术只不过是实现功能的工具而已,仅此而已.后来学习了解CMDB,越来越发现 ...
- Linux达人养成计划1(第2章 Linux系统安装)
2.3 系统分区之分区与格式化 1. 分区类型 主分区:最多只能有四个. 扩展分区: 最多只能有1个. 主分区加扩展分区最多有4个. 不能写入数据,只能包含逻辑分区. 逻辑分区: 2. 格式化(高级格 ...
- 阅读STL源码剖析之list
首先,以我之愚见,觉得有两个地方可以优化一下,不知对否,有待商榷: 1.在list的结点定义中 template<typename T> struct __list_node { type ...
- VIM中的正则表达式及替换命令
VIM中的正则表达式及替换命令 一.使用正则表达式的命令 使用正则表达式的命令最常见的就是 / (搜索)命令.其格式如下: /正则表达式 另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正 ...
- mvn开发可执行的java程序
1. 用maven-assembly-plugin插件 2. 在项目的pom文件中加入以下该插件的配置 <span style="font-size:18px;">& ...
- 编译C++,找不到头文件(fatal error: string: No such file or directory)
在androidproject中编译C++时,找不到头文件,报错例如以下: fatal error: string: No such file or directory 解决该问题须要在Android ...