Button按钮的用法
1、代码如下:
/res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="OK"/> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Exit"/> </LinearLayout> |
Java代码1:
public class MainActivity extends Activity implements OnClickListener { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.button); Button btn2 = (Button) findViewById(R.id.button2); btn.setOnClickListener(this); btn2.setOnClickListener(this); } public void onClick(View arg0) { switch (arg0.getId()) { case R.id.button: setTitle("this is OK button"); break; case R.id.button2: this.finish(); break; } }} |
详解:
1、框架是主角,它呼叫子类的onCreate()函数时,首先正向呼叫父类Activity的onCreate()函数,先执行父类的预设函数,然后才执行自己(即MainActivity) 的onCreate()函数的指令。继续执行到setContentView(R.layout.main)指指令时,就去取main.xml 的内容,依据它来进行屏幕画面的布局(Layout)。
2. 指令:Button btn = (Button)findViewById(R.id.button);找出目前的布局(即R.layout.main)里的按钮參考,并存入btn变量,于是btn就參考到画面上id 值为id/button 的按钮了。
3. 指令:btn.setOnClickListener(this);这设定按钮事件的处理程序(Event Handler),又称为事件监听者。当使用者按下id 值为id/button 的按钮时,框架必须把事件准确地传递到适当的类,并呼叫所指定的函数。其中的參数:this 就表示此按钮事件必须传递到MainActvity的对象,也就是目前对象(Current Object)。至于由MainActvity类的哪一个函数來处理呢?就是由OnClickListener 接口所规定的onClick(View arg0)函数來处理。
4、由于可能有多个按钮,其事件都会传递到MainActvity类,都由onClick()函数负责处理,所以在onClick()函数里的switch 语句按照按钮id值來判断到底是哪一个按钮送来的事件。如果是由id 值为id/button 的按钮(即OK)所送來的话,就在画面标题(Title)区显示出字串:”this is OK button”。反之,如果是由id 值为id/button2 的按钮(即Exit)所送来的话,就呼叫父类的finish()函数而结束目前的画面(即目前的Activity)。
Java代码2:
public class MainActivity extends Activity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.button); Button btn2 = (Button)findViewById(R.id.button2); btn.setOnClickListener(listener); btn2.setOnClickListener(listener2); } OnClickListener listener = new OnClickListener() { public void onClick(View v) { setTitle("this is OK button"); } }; OnClickListener listener2 = new OnClickListener() { public void onClick(View v) { finish(); } }; } |
两种用法实现的功能是一样的,具体用哪种, 自己在分析一下!
Button按钮的用法相关推荐
- Vue中Button按钮基础用法及参数属性
根据颜色.形状.图标等等设计美观的按钮 使用type.plain.round和circle属性来定义 Button 的样式. <el-row><el-button>默认按钮&l ...
- android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...
现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...
- UI控件之Button(按钮)和ImageButton(图像按钮)
(一)概述 Button普通按钮跟ImageButton图像按钮的用法基本类似,至于图片相关的则和后面的ImageView相同,所以本节只对Button的用法进行讲解,另外Button是TextVie ...
- elementui 按钮 表单_elementUI 学习入门之 Button 按钮
基础按钮用法 按钮分为:默认按钮.朴素按钮(plain).圆角按钮(round).圆形按钮(circle).eg: 朴素按钮 通过 type 属性指定 primary.success.info.war ...
- 【微信小程序自学第一天】主要内容是text插件以及button按钮插件以及image图像插件
前言 作为大一萌新挑战自学微信小程序,在备战蓝桥杯的同时学一点类似服务外包竞赛的内容,本人在上大一之前没有接触过任何编程,还希望各位大佬多多指教! 正文 常用的基础内容组件 text 文本组件 类似于 ...
- 【Android 】零基础到飞升 | Button(按钮)与ImageButton(图像按钮)
2.3.3 Button(按钮)与ImageButton(图像按钮) 本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮: 其实I ...
- EditText控件的基本使用(点击Button按钮,Toast提示EditText中的内容)
EditText是程序用于和用户进行交互的另一个重要控件,它允许用户在空间里输入和编辑内容,并可以在程序中对这些内容进行处理.EditText的应用场景非常普遍,在进行发短信.发微博.聊QQ等操作时, ...
- 前端问题:button按钮在form表单的时候会当成submit提交
button按钮在form表单的时候会当成submit提交 input type="button" PS:遇到了一个坑是,button按钮在form表单的时候会当成submit提交 ...
- Winform中使用代码编写Button按钮的点击事件
场景 一般在进行Winform窗体开发时都会拖拽一个Button,然后双击进入Button按钮的点击事件中,进行 点击事件的编写. 如果窗体上事先没有Button按钮,是在代码中生成的Button按钮 ...
最新文章
- Mxnet - Understanding weight shape for Dense Layer MXNET权重参数形状的疑惑(内部设计形式行列谁在前不用管,多个转置运算而已)
- java valueof的用法_Java SignStyle valueOf()用法及代码示例
- Unity3d XmlException: Text node cannot appear in this state的方案
- cs模式下,显示网络图片一例
- leetcode60. 第k个排列(回溯算法)
- 1025 反转链表 (25分)
- java 写文件缓存,java泛型实现文件缓存
- Unity 3D 进度条制作
- C语言实现简单的单例模式
- 水土不服?谈一谈机器学习在金融风控实践经验
- mysql 随机槽_mysql怎样高效率随机获取n条数据
- Redis之Pipeline(管道)
- SqlServer使用表值函数汇总
- 0906--学成在线页面案例
- Lattice Diamond在线调试Reveal Analyzer使用教程
- 批量修改图片的尺寸,MATLAB操作,上手简单,保证能用
- 计算机组成原理期末大纲
- android 带刻度的滑动条_Android实现自定义滑动刻度尺方法示例
- 公司 邮件 翻译 培训 长难句 13
- 阿里云Apsara Clouder基础技能认证:阿里巴巴编码规范题库(最新题库大全)
热门文章
- 怎么区分单线双线BGP线路的服务器?
- [Python]小甲鱼Python视频第023~024课(递归:这帮小兔崽子、汉诺塔)课后题及参考解答...
- 2021Java高级面试题总结:java程序员优秀简历模板
- [精]Oracle VPD详解(虚拟专用数据库)
- GitHub标星 10k+ 的后台管理系统
- 暴风影音 彻底彻底无无广告广告
- 对于环形组网次优和来回路径不一致的解决方法
- 网站APP数据库里的用户信息被泄露篡改怎么办
- 模拟退火算法 python实现旅行家问题
- 电池充放电管理-锂电池充电过程及电路设计