关于设置listener监听onClicked事件的步骤分析

Steps:

1.tell android you are interested in listening to a button click

2.bring your xml button inside java

3.tell your java button whose responding when it's clicked

4.what should happen when button is clicked

  1. <Button
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:text="Button1"
  5. android:id="@+id/button1"
  6. android:layout_below="@+id/textView"
  7. android:layout_alignParentLeft="true"
  8. android:layout_alignParentStart="true" />
  1. public class MainActivity extends Activity implements OnClickListener {//1.tell android you are interested in listening to a button click
  2.  
  3. Button button;
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8. button = (Button)findViewById(R.id.button1);//2.bring your xml button inside java
  9. button.setOnClickListener(this);//3.tell your java button whose responding when it's clicked
  10. }
  11.  
  12. @Override//4.what should happen when button is clicked
  13. public void onClick(View v) {
  14. Log.e("MainActivity","Clicked1");
  15. }
  16.  
  17. }

监听多个button:

  1. button1 = (Button)findViewById(R.id.button1);
  2. button1.setOnClickListener(this);
  3. button2 = (Button)findViewById(R.id.button2);
  4. button2.setOnClickListener(this);
  5. button3 = (Button)findViewById(R.id.button3);
  6. button3.setOnClickListener(this);
  7.  
  8. @Override
  9. public void onClick(View view) {
  10. if(view.getId()==R.id.button1){//复制
  11. TextView textView = (TextView)findViewById(R.id.textView);
  12. TextView textView1 = (TextView)findViewById(R.id.editText);
  13. textView.setText(""+textView1.getText());
  14.  
  15. }
  16. if(view.getId()==R.id.button2){//锁定
  17. TextView textView = (TextView)findViewById(R.id.editText);
  18. //textView.setFocusable(false);
  19. //textView.setFocusableInTouchMode(false);
  20. //textView.setEnabled(false);
  21. keyListener=textView.getKeyListener();
  22. textView.setKeyListener(null);
  23. InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);//这两行是收起软键盘
  24. imm.hideSoftInputFromWindow(textView.getWindowToken(),0);
  25.  
  26. }
  27. if(view.getId()==R.id.button3){//编辑
  28. TextView textView = (TextView)findViewById(R.id.editText);
  29. textView.setKeyListener(keyListener);
  30. textView.setFocusable(true);
  31. textView.setFocusableInTouchMode(true);
  32. textView.requestFocus();
  33.  
  34. }
  35. }

布局如下:

  1. <TextView
  2. android:text="@string/hello_world"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:id="@+id/textView" />
  6.  
  7. <Button
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="复制"
  11. android:id="@+id/button1"
  12. android:layout_alignParentLeft="true"
  13. android:layout_alignParentStart="true" />
  14.  
  15. <Button
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:text="锁定"
  19. android:id="@+id/button2"
  20. android:layout_alignParentLeft="true"
  21. android:layout_alignParentStart="true" />
  22.  
  23. <Button
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="编辑"
  27. android:id="@+id/button3"
  28. android:layout_centerHorizontal="true" />

有关Botton的用法(二)的更多相关文章

  1. react基础用法二(组件渲染)

    react基础用法二(组件渲染) 如图所示组件可以是函数 格式:function 方法名(){ return <标签>内容</标签>} 渲染格式: <方法名 />  ...

  2. Java关于Properties用法(二)——替换配置文件中的参数

    上一章讲了配置文件的基本用法,虽然上一章已经可以解决一些需求,但还不些不足之处.假如,配置文件里面的字符串有一部分需要经常变动,另外一些不需要,上一章的方法就不方便了,所以这章主要讲如何在配置文件中使 ...

  3. 关于Unity中的刚体和碰撞器的相关用法(二)

    在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机 ...

  4. requirejs的用法(二)

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...

  5. Dapper学习 - Dapper的基本用法(二) - 存储过程/函数

    上一篇貌似少介绍了自定义函数和存储过程, 因为这两个也可以使用查询的方式来实现功能, 这一篇就补上 一.自定义函数的创建和调用 (mysql的) Delimiter $$ drop function ...

  6. ReSharper 配置及用法(二)

    下载工具 一:Reshaper是什么 即便是那些整天攻击 .NET 和 C# 的人,也常常不得不承认 Visual Studio 确实是个够强大的 IDE,除非他认为更少的 IDE 功能和命令行调试才 ...

  7. javaweb学习总结二十六(response对象的用法二 下载文件)

    一:浏览器打开服务器上的文件 1:读取服务器上面的资源,如果在web层,可以直接使用servletContext,如果在非web层 可以使用类加载器读取文件 2:向浏览器写数据,实际上是把数据封装到r ...

  8. JavaScript高级用法二之内置对象

    综述 本篇的主要内容来自慕课网,内置对象,主要内容如下 1 什么是对象 2 Date 日期对象 3 返回/设置年份方法 4 返回星期方法 5 返回/设置时间方法 6 String 字符串对象 7 返回 ...

  9. select()函数用法二

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序 ...

随机推荐

  1. idea发布到tomcat缺少jar

    主要是需要自己添加jar到artifact,如果单个添加jar,则在右边栏右键选择 如果是把整个lib添加到toamcat发布,则选择下面的提示:

  2. jvm-知识点总结

    参考: https://blog.csdn.net/wuqinghai2012/article/details/51485414 http://pengjiaheng.iteye.com/blog/5 ...

  3. 因磁盘爆满而导致NameNode HA无法启动

    场景回顾: 测试集群节点分配:35,36是namenode且开启HA,37,38,39即作为datanode,又作为journalnode. 某时间 38节点磁盘爆满,集群中hdfs及依赖的服务全部宕 ...

  4. Nginx的长链接

    网站使用程序discuz3访问都正常,只有用户登录存在异常,具体就是:用户登陆后会马上显示未登录,然后刷新一下又变成了登录中 这个问题的原因显然是由于session导致,后台有多个web机器,当用户登 ...

  5. java-给微信推送消息 利用企业微信

    目的:给关注用户推送消息 场景:自动化测试,运维监控,接口访问等报错预警.例如线上接口报错,发送提醒消息 准备工作: 1:注册企业号(为什么不用公众号呢?) 企业号注册 2:常用参数介绍: 1:COR ...

  6. 【C#基本功 控件的用法】 委托

    接触C#这段时间,很多内容容易理解,但也也有很多内容总是无法踏过门槛,就像Delegate 委托,这种新的机制是Labview不具备的,他的一个用法,也让我们这些从labview跨越过来的coder, ...

  7. python random使用生成随机字符串

    应用python random标准库做一个随机生成密码的程序,可以随机生成任意多个字符.(基于python2.7,如果是python3需要修改下) 案例: #-*-coding:utf-8 -*-#a ...

  8. .net操作Oracle数据库步骤及方法

    1.首先安装PL/SQL Developer Oracle客户端软件 2.安装Oracle Instant Client(即时客户端) 安装与配置 配置环境变量ORAClE HOME 地址为insta ...

  9. flask学习(二):认识web

    url详解: URL是Uniform Resource Locator 的简写,统一资源定位符 一个URL由以下及几部分组成: scheme://host:port/path/?query-strin ...

  10. [转载]java操作word生成水印

    应用场景 为了保护版权或辨别文件的真伪,有时需要在生成的Word文件中动态添加水印,PageOffice组件的WaterMark类就封装了给在线编辑的Word文件添加水印这一功能,调用接口非常简单. ...