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后执行的代码 }
}

最新文章

  1. Base:-用数组赋值实现while和shift功能
  2. 08OC之Foundation框架
  3. 让用户打开你app的位置功能
  4. IOS之KVC机制(Object-C篇)
  5. android 电话拨号器
  6. 速卖通---发布商品aeopAeProductPropertys这个字段值报07004013的错误
  7. 关于初学者上传文件到github的方法
  8. Linux 文件操作——系统调用和标准I/O库
  9. Android分析第三方应用layout的神器
  10. cocos2d-x2.x环境搭建配置
  11. Jquery()核心函数的7个重载方法
  12. Regmon7.04绿色版(注册表变动实时监视工具)
  13. 第4章 流程控制----编写Java程序,使用while循环语句计算1+1/2!+1/3!+...+1/20!之和
  14. chorme浏览器的Access-Control-Allow-Origin拦截限制
  15. NemaStudio船舶模拟软件下载及破解
  16. 省市区/国籍 多级联动-jq
  17. LeetCode之“动态规划”:Maximal Square &amp;&amp; Largest Rectangle in Histogram &amp;&amp; Maximal Rectangle
  18. CVE-2019-0686|Microsoft Exchange特权提升漏洞补丁已发布
  19. cyq.data 常见使用方法
  20. JDK1.8源码(二)——java.util.LinkedList

热门文章

  1. 【cocos2d-js官方文档】九、cc.loader
  2. HDU 2824.The Euler function-筛选法求欧拉函数
  3. AtCoder Grand Contest 023 A - Zero-Sum Ranges
  4. Coderforces 85 D. Sum of Medians(线段树单点修改)
  5. Linux命令之vim(二)
  6. 【找规律】URAL - 2069 - Hard Rock
  7. 【树链剖分】【线段树】bzoj3083 遥远的国度
  8. 【可持久化Trie】bzoj3261 最大异或和
  9. 【可持久化Trie】模板
  10. 【二维单调队列】BZOJ1047-[HAOI2007]理想的正方形