android中点击事件的4种写法
2024-10-20 20:30:48
android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法。
假设在布局文件中声明如下
....... <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt_1" /> .......
一、通过匿名内部类
主要的java代码如下,首先获取到该Button控件。
private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_1 = (Button) findViewById(R.id.bt_1);
bt_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//点击后触发执行的代码
}
二、通过内部类
首先获取到该控件,再创建一个内部类,该内部类实现OnClickListener接口。
private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_1=(Button) findViewById(R.id.bt_1);
bt_1.setOnClickListener(new MyListener());
}
class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// 点击Button后触发执行的代码
} }
三、在布局文件中添加onClick属性
更改布局文件中 Button的属性
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bt_1"
android:onClick="click"
/>
添加点击事件时,直接声明一个方法,不必获取到控件
// private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// bt_1 = (Button) findViewById(R.id.bt_1);
}
public void click(View view){
//点击Button后触发执行的代码 }
四、通过实现接口
使用此方法时,主方法要实现OnClickListener 接口,并且覆写接口中定义的onClick方法
public class MainActivity extends Activity implements OnClickListener { private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_1 = (Button) findViewById(R.id.bt_1);
//此处传入this即可
bt_1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// 点击Button后执行的代码 }
}
最新文章
- Base:-用数组赋值实现while和shift功能
- 08OC之Foundation框架
- 让用户打开你app的位置功能
- IOS之KVC机制(Object-C篇)
- android 电话拨号器
- 速卖通---发布商品aeopAeProductPropertys这个字段值报07004013的错误
- 关于初学者上传文件到github的方法
- Linux 文件操作——系统调用和标准I/O库
- Android分析第三方应用layout的神器
- cocos2d-x2.x环境搭建配置
- Jquery()核心函数的7个重载方法
- Regmon7.04绿色版(注册表变动实时监视工具)
- 第4章 流程控制----编写Java程序,使用while循环语句计算1+1/2!+1/3!+...+1/20!之和
- chorme浏览器的Access-Control-Allow-Origin拦截限制
- NemaStudio船舶模拟软件下载及破解
- 省市区/国籍 多级联动-jq
- LeetCode之“动态规划”:Maximal Square &;&; Largest Rectangle in Histogram &;&; Maximal Rectangle
- CVE-2019-0686|Microsoft Exchange特权提升漏洞补丁已发布
- cyq.data 常见使用方法
- JDK1.8源码(二)——java.util.LinkedList
热门文章
- 【cocos2d-js官方文档】九、cc.loader
- HDU 2824.The Euler function-筛选法求欧拉函数
- AtCoder Grand Contest 023 A - Zero-Sum Ranges
- Coderforces 85 D. Sum of Medians(线段树单点修改)
- Linux命令之vim(二)
- 【找规律】URAL - 2069 - Hard Rock
- 【树链剖分】【线段树】bzoj3083 遥远的国度
- 【可持久化Trie】bzoj3261 最大异或和
- 【可持久化Trie】模板
- 【二维单调队列】BZOJ1047-[HAOI2007]理想的正方形