文档章节

Android攻城狮—监听(按钮)点击事件

维他ViTa
 维他ViTa
发布于 2016/11/10 18:47
字数 552
阅读 22
收藏 0

onClick事件

  • 所有的控件都有一个onClick事件,包括Button和ImageButton。
    • 通过自身的.setOnClickListener(OnClickListener)方法添加点击事件
  • 通过点击事件的监听可以实现点击按钮之后要发生什么动作

监听事件的实现方法

  • 匿名内部类的实现
  • public class MainActivity extends Activity {
    /*
     * 第一种方式:匿名内部类
     */
        private Button wordButton;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		/*
    		 * 1.初始化当前所需的一个控件
    		 * findViewById --返回的是一个View的对象
    		 * 
    		 * 2.设置Button的监听器,通过监听器实现点击Button所要操作的事情
    		 */
    		wordButton = (Button)findViewById(R.id.button1);
            //之所以用(Button)是因为findViewById返回的是一个View的对象,"View是所有控件的一个父类"
    
    		wordButton.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				// 在当前onClick方法中监听Button的动作
    				System.out.println("我的按钮被点击了");
    			}
    		});
    		
    	}
    }
    

    运行结果>>监听到点击事件后执行类中的方法(即控制台输出“我的按钮被点击了”)。

  • 独立类的实现
  • /*
     *第二种方式:独立类
     */
    public class MainActivity extends Activity {
    	//Button对象
    	private Button wordButton;
    	private ImageButton imageButton;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		wordButton = (Button)findViewById(R.id.button1);
    		wordButton.setOnClickListener(new MyClick() {
    			//调用父类的OnClick
    			@Override
    			public void onClick(View v){
    				super.onClick(v);
    				Toast.makeText(MainActivity.this,"wordbutoon", 1).show();
    			}
    
    		});
    		
    		imageButton = (ImageButton)findViewById(R.id.imageButton1);
    		imageButton.setOnClickListener(new MyClick() {
    			//调用父类的OnClick
    			@Override
    			public void onClick(View v){
    				super.onClick(v);
    				Toast.makeText(MainActivity.this,"imagebutoon", 1).show();
    			}
    
    		});
    
    	}	
    }
    
    /*
     * 独立类
     */
    class MyClick implements  OnClickListener{
    
    	@Override
    	public void onClick(View v) {
    		// 让所有试用当前外部类的点击事件的按钮都要做出一个动作(改变透明度)
    		v.setAlpha(0.5f);
    	}
    }
    //[实际应用]:需求让多个按钮实现同一种动作的时候,可用此方法,简化代码。
    

    运行结果>>监听到按钮点击事件后实现独立类中的方法(即点击按钮,透明度发生改变)。

  • 实现接口的方式来实现
  • /*
     * 第三种方式:接口
     */
    public class MainActivity extends Activity implements OnClickListener{
    	
    	private Button wordButton;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		wordButton = (Button)findViewById(R.id.button1);
    		wordButton.setOnClickListener(this);
    	}
    	
    
    	@Override
    	public void onClick(View arg0) {
    		Log.i("tog","第三种方式"); //Log用来打印日志
    	}	
    }
    

    运行结果>>监听到按钮点击事件后实现方法(即打印日志)。

© 著作权归作者所有

共有 人打赏支持
维他ViTa
粉丝 12
博文 135
码字总数 44057
作品 0
深圳
程序员
私信 提问
程序猿媛六:ListView的Item点击事件(消息传递)

ListView的Item点击事件(消息传递) 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。 转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢! 您可以到博客的...

花佟林雨月
2013/12/07
0
0
Android 如何监听返回键,弹出一个退出对话框

Android 如何监听返回键,弹出一个退出对话框 分类: 初级android2012-10-21 00:46 48472人阅读 评论(9) 收藏 举报 androiddialogbuttonclass Android 如何监听返回键点击事件,并创建一个退...

智勇
2015/03/18
0
0
android调用setRequestedOrientation之后

最近在做播放器的时候遇到一个问题,在屏幕方向改变之后需要切换播放器全屏/非全屏的时候,在重写了onConfigurationChanged方法并在manifest.xml配置文件中添加 android:screenOrientation="s...

QGlaunch
2015/05/11
0
0
玩转程序,怎能缺了码云 Android 项目构建功能

“你们的理想是什么?”“不知道!” “那去当程序员啊,收入高,机会多,还可以免费在公司吹空调到半夜(你们懂的)……” “哇,这么好!那要怎样才能当一个好的程序员呢?” “多看代码啊...

局长
2016/09/05
3.6K
10
求助:给布局控件设置点击控件以外区域使其隐藏?

具体: 给具体大小的RelativeLayout设置了android:visibility="gone" 点击按钮 RelativeLayout平移出现 在动画监听的onAnimationStart 给RelativeLayout 设置了setVisibility(View.VISIBLE)...

闰哥儿
2016/01/13
294
0

没有更多内容

加载失败,请刷新页面

加载更多

mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
25分钟前
3
0

中国龙-扬科
28分钟前
1
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
57分钟前
13
0
基础编程题目集-7-13 日K蜡烛图

股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开...

niithub
今天
5
0
Jenkins window 下的安装使用

1.下载:https://jenkins.io/download/ 双击安装完毕,将自动打开浏览器: http://localhost:8080 打开对应位置的文件,将初始密钥粘贴至输入框。 第一个是 安装默认的软件;第二个是 自定义...

狼王黄师傅
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部