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按钮的用法相关推荐

  1. Vue中Button按钮基础用法及参数属性

    根据颜色.形状.图标等等设计美观的按钮 使用type.plain.round和circle属性来定义 Button 的样式. <el-row><el-button>默认按钮&l ...

  2. android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...

    现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...

  3. UI控件之Button(按钮)和ImageButton(图像按钮)

    (一)概述 Button普通按钮跟ImageButton图像按钮的用法基本类似,至于图片相关的则和后面的ImageView相同,所以本节只对Button的用法进行讲解,另外Button是TextVie ...

  4. elementui 按钮 表单_elementUI 学习入门之 Button 按钮

    基础按钮用法 按钮分为:默认按钮.朴素按钮(plain).圆角按钮(round).圆形按钮(circle).eg: 朴素按钮 通过 type 属性指定 primary.success.info.war ...

  5. 【微信小程序自学第一天】主要内容是text插件以及button按钮插件以及image图像插件

    前言 作为大一萌新挑战自学微信小程序,在备战蓝桥杯的同时学一点类似服务外包竞赛的内容,本人在上大一之前没有接触过任何编程,还希望各位大佬多多指教! 正文 常用的基础内容组件 text 文本组件 类似于 ...

  6. 【Android 】零基础到飞升 | Button(按钮)与ImageButton(图像按钮)

    2.3.3 Button(按钮)与ImageButton(图像按钮) 本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮: 其实I ...

  7. EditText控件的基本使用(点击Button按钮,Toast提示EditText中的内容)

    EditText是程序用于和用户进行交互的另一个重要控件,它允许用户在空间里输入和编辑内容,并可以在程序中对这些内容进行处理.EditText的应用场景非常普遍,在进行发短信.发微博.聊QQ等操作时, ...

  8. 前端问题:button按钮在form表单的时候会当成submit提交

    button按钮在form表单的时候会当成submit提交 input type="button" PS:遇到了一个坑是,button按钮在form表单的时候会当成submit提交 ...

  9. Winform中使用代码编写Button按钮的点击事件

    场景 一般在进行Winform窗体开发时都会拖拽一个Button,然后双击进入Button按钮的点击事件中,进行 点击事件的编写. 如果窗体上事先没有Button按钮,是在代码中生成的Button按钮 ...

最新文章

  1. Mxnet - Understanding weight shape for Dense Layer MXNET权重参数形状的疑惑(内部设计形式行列谁在前不用管,多个转置运算而已)
  2. java valueof的用法_Java SignStyle valueOf()用法及代码示例
  3. Unity3d XmlException: Text node cannot appear in this state的方案
  4. cs模式下,显示网络图片一例
  5. leetcode60. 第k个排列(回溯算法)
  6. 1025 反转链表 (25分)
  7. java 写文件缓存,java泛型实现文件缓存
  8. Unity 3D 进度条制作
  9. C语言实现简单的单例模式
  10. 水土不服?谈一谈机器学习在金融风控实践经验
  11. mysql 随机槽_mysql怎样高效率随机获取n条数据
  12. Redis之Pipeline(管道)
  13. SqlServer使用表值函数汇总
  14. 0906--学成在线页面案例
  15. Lattice Diamond在线调试Reveal Analyzer使用教程
  16. 批量修改图片的尺寸,MATLAB操作,上手简单,保证能用
  17. 计算机组成原理期末大纲
  18. android 带刻度的滑动条_Android实现自定义滑动刻度尺方法示例
  19. 公司 邮件 翻译 培训 长难句 13
  20. 阿里云Apsara Clouder基础技能认证:阿里巴巴编码规范题库(最新题库大全)

热门文章

  1. 怎么区分单线双线BGP线路的服务器?
  2. [Python]小甲鱼Python视频第023~024课(递归:这帮小兔崽子、汉诺塔)课后题及参考解答...
  3. 2021Java高级面试题总结:java程序员优秀简历模板
  4. [精]Oracle VPD详解(虚拟专用数据库)
  5. GitHub标星 10k+ 的后台管理系统
  6. 暴风影音 彻底彻底无无广告广告
  7. 对于环形组网次优和来回路径不一致的解决方法
  8. 网站APP数据库里的用户信息被泄露篡改怎么办
  9. 模拟退火算法 python实现旅行家问题
  10. 电池充放电管理-锂电池充电过程及电路设计