Android开发学习之事件处理和Button具体解释
Android的事件处理机制:
1.基于监听器的事件处理 --- 组件绑定特定的事件监听器   --- 重点
  2.基于回调的事件处理   --- 主要做法是重写Android组件特定的回调函数,
  Android大部分界面组件都提供了事件响应的回调函数。我们仅仅要重写它们即可
监听器模型:
  (1)事件源Event Source:产生事件的来源,一般是各种组件,如button。窗体等。
 (2)事件Event:事件封装了界面组件上发生的特定事件的详细信息,假设监听器须要获取界面组件上所发生事件的相关信息。一般通过事件Event对象来传递。
 (3)事件监听器Event Listener:负责监听事件源发生的事件,并对不同的事件做对应的处理。
基于监听器的事件处理:
   1.内部类作为监听器
2.匿名内部类作为事件监听器类
3.XML布局文件里指定处理方法
1.  btnLogin=(Button)super.findViewById(R.id.login);  
  
     //为button注冊监听事件  
    btnLogin.setOnClickListener(new LoginOnClickListener());  
         }  
         //事件监听器  
    private class LoginOnClickListener implements OnClickListener{  
        public void onClick(View v){  
            String username=tvUserName.getText().toString();  
            String password=tvPassword.getText().toString();  
            String info="用户名:"+username+"☆☆☆密码:"+password;  
            Toast.makeText(getApplicationContext(), info,Toast.LENGTH_SHORT).show();  
        }  
    }  
    
2.  btnLogin=(Button)super.findViewById(R.id.login);  
    btnLogin.setOnClickListener(new OnClickListener(){  
       public void onClick(View v){  
          String username=tvUserName.getText().toString();  
          String password=tvPassword.getText().toString();  
          String info="用户名:"+username+"☆☆☆密码:"+password;  
          Toast.makeText(getApplicationContext(), info,Toast.LENGTH_SHORT).show();  
      }  
    });     
  Button事件处理方法:
 
 1.
        myButton1=(Button)findViewById(R.id.myButton1);  
        myButton2=(Button)findViewById(R.id.myButton2);  
          
        //使用匿名类注冊Button事件  
        myButton1.setOnClickListener(new OnClickListener()  
        {         
            public void onClick(View v)  
            {  
                Toast.makeText(ButtonDemoActivity.this, "你点击了button1",Toast.LENGTH_LONG).show();  
            }  
        });  
        myButton2.setOnClickListener(new OnClickListener()  
        {         
            public void onClick(View v)  
            {  
                Toast.makeText(ButtonDemoActivity.this, "你点击了button2",Toast.LENGTH_LONG).show();  
            }  
        });  
2. 
   myButton1.setOnClickListener(new ButtonClick());  
   myButton2.setOnClickListener(new ButtonClick()); 
  //创建一个类。来响应OnClickListener  
    class ButtonClick implements OnClickListener  
    {  
        public void onClick(View v)  
        {  
            switch (v.getId()) {  
            case R.id.myButton1:  
                Toast.makeText(ButtonDemoActivity.this, "你点击了button1",Toast.LENGTH_LONG).show();  
                break;  
            case R.id.myButton2:  
                Toast.makeText(ButtonDemoActivity.this, "你点击了button2",Toast.LENGTH_LONG).show();  
                break;  
            default:  
                break;  
            }  
        }         
    }  
3. 
    XML中定义处理方法:
    <Button 
           android:onClick="clickIt">
           
    public void clickIt(View view){
      //处理button点击事件的方法
    }
定义圆角的Button
1.res->drawable-mdpi -> shape.xml
       shape.xml   --- button样式定制文件XML
<?xml version="1.0" encoding="UTF-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
<!--定义填充颜色-->
<solid android:color="#FFFFFF"/>
<!--设置button的四个角为弧形-->
<!--android:radius 弧形半径-->
<corners android:radius="5dip">
<!--padding:button 里边的文字与Button边界的间距-->
<padding
   android:left="10dp"
   android:top="10dp" 
   android:right="10dp" 
   android:bottom="10dp"/>
</shape>
      mainLayout.xml    ---- 布局文件
在通过android:background="@drawable/shape"中使用shape.xml资源
<Button
       android:id="@+id/button1"
       android:text="圆角button"
       android:layout_width="wrap_content"   
       android:layout_height="wrap_content"  
       android:background="@drawable/shape"/>
Android开发学习之事件处理和Button具体解释的更多相关文章
- android开发学习笔记:圆角的Button
		转自:http://www.cnblogs.com/gzggyy/archive/2013/05/17/3083218.html 在res目录下的drawable-mdpi建立xml文件shape.x ... 
- Android开发学习之路--网络编程之xml、json
		一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载 ... 
- Android开发学习之LauncherActivity开发启动的列表
		Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ... 
- Android开发学习之路--Android Studio cmake编译ffmpeg
		最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ... 
- Android开发学习之路--Activity之初体验
		环境也搭建好了,android系统也基本了解了,那么接下来就可以开始学习android开发了,相信这么学下去肯定可以把android开发学习好的,再加上时而再温故下linux下的知识,看看androi ... 
- Android开发学习路线的七个阶段和步骤
		Android开发学习路线的七个阶段和步骤 Android学习参考路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和St ... 
- Android开发学习之路-RecyclerView滑动删除和拖动排序
		Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ... 
- Android开发学习路线图
		Android开发学习方法: Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大.因此,一个好的学习方法对我们学习Android开发很重要. 在此建议, ... 
- android开发学习笔记000
		使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ... 
随机推荐
- debian 9 安装无线网卡
			#添加源 echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" >> ... 
- [php]如何做到高并发优化
			在实际的开发过程中我们遇到过各种各样的活动,但像用户流量较大的平台就需要考虑高并发的问题,但是如何去解决呢?我总结了几种解决方案,欢迎大家指正! 一.什么是PV/UV/QPS? PV:页面访问量,即P ... 
- 自适应增强(Adaptive Boosting)
			简介 AdaBoost,是英文”Adaptive Boosting“(自适应增强)的缩写,是一种迭代提升算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成 ... 
- nyoj 1189 yougth和他的朋友们 (DP)
			题目:pid=1189" target="_blank">nyoj 1189 yougth和他的朋友们 这题目是14年北京赛区的原题.讲题的时候说有三种解法,我们是 ... 
- POJ 3071
			求概率.其实跟枚举差不多,输入n即是要进行n轮比赛.对每一支球队,设求1的概率,首先1要与2比赛为p1,这是第一轮,第二轮时,1要与3(打败3为p2),4(打败4为p3)中胜者比赛,由于是概率,则两者 ... 
- Loopback測试软件AX1用户手冊 V3.1
			点击:AX1 软件下载 1. 什么是AX1 AX1程序是基于windows的PC程序,用来评估 iinChip™的性能,也即是wiznet的硬件TCP/IP芯片. AX1通过网络与iinChip™评估 ... 
- hdu4390-Number Sequence(容斥计算)
			题意:给定b数列.计算有多少种数列 a1,a2,...,an 满足条件 a1*a2*...*an=b1*b2*-*bn (ai>1). 解法:处理出b数列中出现的全部质因子的数量记录在map中, ... 
- Mosquito的优化——epoll优化(七)
			本文由逍遥子撰写,转发请标注原址: http://blog.csdn.net/houjixin/article/details/46413583 或 http://houjixin.blog.163. ... 
- bzoj1830: [AHOI2008]Y型项链(LCP+贪心)
			1830: [AHOI2008]Y型项链 题目:传送门 简要题意: 给出三个字符串,可以对任意字符串进行操作,每次操作都可以再其中一个字符串的末尾删除或添加一个字符,求最小操作数使得所有的字符串相同 ... 
- iOS (封装)一句话调用系统的alertView和alertController
			前言: 本文仅作参考存留,请用新版封装:iOS 更加优雅便捷的UIAlertView/UIAlertController封装使用 UIAlertController是iOS8.0之后出来的新方法,其将 ... 
