个性化网站有哪些/西安seo站内优化
一、写在最前面
本次,来介绍一下安卓中为控件--Button绑定事件的五种方式。
二、具体的实现
第一种:直接绑定在Button控件上:
步骤1.在Button控件上设置android:onClick=",其中这个属性的属性值对应的是MainActivity类中的方法名字(自己创建的方法):
步骤2.在MainActivity类中创建相对应的方法:
public void demo(View view){
Toast.makeText(MainActivity.this, "第二个按钮被点击了",Toast.LENGTH_SHORT).show();
}
第二种:使用匿名内部类的方式:
步骤1.首先需要获取到 layout 中布局页面的Button控件中指定的Id:
步骤2.之后为这样按钮绑定监听器,使用匿名内部类的方式,代码如下:
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "通过匿名内部类:第一个按钮被点击了",Toast.LENGTH_SHORT).show();
}
});
第三种:使用外部类的方式
步骤1.需要获取到 layout 布局页面中的Button控件中指定的Id(在MainActivity中):
步骤2.创建一个类,并且实现 OnClickListener 接口,重写这个接口中的 OnClick 方法,并且为这个方法创建一个 Context 属性(之后的Toast需要使用到),使用构造器设置这个属性值:
package com.mqz.android_event_test;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class BtnTest implements OnClickListener {
private Context context;
public BtnTest(Context context){
this.context=context;
}
@Override
public void onClick(View view) {
Toast.makeText(context, "通过外部类实现OnClickListener接口:第一个按钮被点击了",Toast.LENGTH_SHORT).show();
}
}
步骤3.为获取到的按钮绑定事件,并且把当前对象传入
第四种:使用MainActivity直接实现OnClickListener接口的方式
步骤1.在 MainActivity 中实现 OnClickListener 接口,并且重写 OnClick 方法:
步骤2.绑定button按钮相对应的监听,把当前对象传入:
特点:
1.这样是的MainActivity类成为了监听器类,这样的方式十分简洁
2.但是这样容易引起结构的混乱,因为MainActivity类主要职责来初始化界面的,这加入了事件处理器的方法,引起混乱。
3.界面类需要实现监听器的方法,有点不伦不类。
package com.mqz.android_event_test;
import android.app.Activity;
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.Toast;
public class MainActivity extends Activity implements OnClickListener{
private Button button;
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "通过MainActivity实现OnClickListener接口:第一个按钮被点击了",Toast.LENGTH_SHORT).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button2);
button.setOnClickListener(this);
}
}
第五种:使用成员内部类的方式来实现button按钮事件的绑定
步骤1.获取 layout 布局文件中的Button控件的 Id:
步骤2.在 MainActivity 类中创建一个成员内部类,并且实现 OnClickListener 接口,重写 OnClick 方法:
class BtnTest1 implements OnClickListener{
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "通过成员内部类:第二个按钮被点击了",Toast.LENGTH_SHORT).show();
}
}
步骤3、在这个按钮中绑定相关的事件,new 内部类()即可,不需要传入上下文对象,因为这个类是当前类的内部类:
好处:
1.成员内部监听器的方式可以访问外部类的中的所有属性,所以在new OnClickListener实现类 对象的时候不需要传入当前对象
2.成员内部监听器可以让外部类重复使用,因为成员内部监听器是外部类的内部类
一、winForm-DataGridView操作——控件绑定事件的两种方法
在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...
为input标签绑定事件的几种方式
为input标签绑定事件的几种方式 1.JavaScript原生态的方式,直接复制下面的代码就会有相应的效果
...JS与JQ绑定事件的几种方式.
JS与JQ绑定事件的几种方式 JS绑定事件的三种方式 直接在DOM中进行绑定
随机推荐
[干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)
前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...
jquery.fn.extend与jquery.extend--(初体验二)
1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jquery.fn.extend(object);给jQuery对象添加方法. $.extend({ a ...
北漂的生活 - python 面试
第一次来北京,先谈谈感受吧.都说北京的雾霾非常严重,可能是我来的时间短,暂时我还没有遇到特别恶劣的天气,感觉还是很美好的.和朋友住在顺义,出去一次真的远啊,旁边暂时还没有找到清真的饭馆(本人少数民族) ...
python之路——基础篇(2)模块
模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或 ...
TCP/IP协议族
1.TCP(传输控制协议)/IP(网际协议)协议族是一个网络通讯模型,以及一整个网络传输协议家族,为互联网的基础通讯架构. TCP/IP四层协议的表示方法: 2.TCP/IP参考模型映射到OSI模型: ...
web容器的会话机制
基本所有web应用开发的朋友都很熟悉session会话这个概念,在某个特定时间内,我们说可以在一个会话中存储某些状态,需要的时候又可以把状态取出来,这整个过程的时间空间可以抽象成"会话&qu ...
server.xml配置介绍
server.xml位于$TOMCAT_HOME/conf目录下,是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件:通过对xml文件中元素的配置,可以 ...
作业二:Git的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 分布式版本控制系统Git的安装与使用 1.下载安装配置用户名 ...
[android] sharedPreference入门
/********************2016年5月6日 更新**************************************/ 知乎:Android 如何实现判断用户首次使用,比如首 ...
CentOS6安装redmine
Author: JinDate: 20140827System: CentOS release 6.5 (Final) 参考:http://www.redmine.org/projects/redmi ...