博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记-----------按钮的点击事件
阅读量:5741 次
发布时间:2019-06-18

本文共 2540 字,大约阅读时间需要 8 分钟。

Android学习笔记-----------按钮的点击事件

 一.通过设置Button的onclik属性

自定义Button的onclik属性,属性值就是按钮点击事件的方法名

Button不需要指定Id,系统就可以执行此方法

例如:

1  
public void onclick(View v){        Toast.makeText(MainActivity.this,"这是第一个按钮",0).show();    }

二.设置按钮点击监听

这种方法需要指定Button的Id,通过Id.setOnClickListener(OnClickListener)来执行点击按钮后需要执行的程序

这种实现方式有三种写法

接下来的集中实现方式都用以下布局文件

1 

 

1.实现点击接口的方式

这种方式需要MainActivity继承OnClickListener接口,实现其中的onClick方法.

这种方式在处理多按钮的情况下比较好用,可以让代码的调理看起来更清晰.

//实现OnClickListener接口public class MainActivity extends ActionBarActivity implements OnClickListener{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button bt_print = (Button)findViewById(R.id.bt_print);        //由于MainActivity已经实现OnClickListener接口,所以参数为this        bt_print.setOnClickListener(this);    }    @Override    //重写onClick方法    public void onClick(View v) {        Toast.makeText(MainActivity.this,"这是第一个按钮", 0).show();    }    }

 2.内部类

这种方式需要定义一个实现了OnClickListener接口的内部类

特点与第一种方式相同.

1 public class MainActivity extends ActionBarActivity{ 2  3     @Override 4     protected void onCreate(Bundle savedInstanceState) { 5         super.onCreate(savedInstanceState); 6         setContentView(R.layout.activity_main); 7         Button bt_print = (Button)findViewById(R.id.bt_print); 8         //实例化内部类 9         MyOnClickListner myOnClickListner = new MyOnClickListner();10         //参数为实现了OnClickListener接口的内部类对象11         bt_print.setOnClickListener(myOnClickListner);12     }13     //定义一个内部类,实现OnClickListener接口14     class MyOnClickListner implements OnClickListener{15 16         @Override17         //重写onClick方法18         public void onClick(View v) {19             Toast.makeText(MainActivity.this, "这是第一个按钮", 0).show();20             21         }22         23     }24 }

 3.匿名内部类

通过匿名内部类来实例化一个OnClickListener的实现子类.

这种方式会让代码看起来不怎么整洁,但是当布局中只有一个按钮可以用这种方式来节约时间.

public class MainActivity extends ActionBarActivity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button bt_print = (Button)findViewById(R.id.bt_print);         //定义一个匿名内部类,他是OnClickListener的实现子类        bt_print.setOnClickListener(new OnClickListener() {                        @Override            //重写onClick方法            public void onClick(View v) {                // TODO Auto-generated method stub                            }        });    }}

 

转载于:https://www.cnblogs.com/Jhope/p/5282175.html

你可能感兴趣的文章
[Everyday Mathematics]20150105
查看>>
166.3. 容器
查看>>
1.6. Network
查看>>
【Web动画】SVG 实现复杂线条动画
查看>>
主流手机分辨率 尺寸 操作系统
查看>>
Office版本差别引发的语法问题
查看>>
使用Wireshark捕捉USB通信数据
查看>>
iOS - KVC 键值编码
查看>>
《树莓派渗透测试实战》——1.1 购买树莓派
查看>>
Apache Storm 官方文档 —— FAQ
查看>>
量化交易入门——数学模型应用于投机交易
查看>>
C++游戏系列4:杀伤距离有限制
查看>>
iOS 高性能异构滚动视图构建方案 —— LazyScrollView
查看>>
Java 重载、重写、构造函数详解
查看>>
【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏
查看>>
【云栖大会】探索商业升级之路
查看>>
HybridDB实例新购指南
查看>>
小程序,会是下一个创业风口吗
查看>>
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>
华大基因BGI Online的云计算实践
查看>>