zoukankan      html  css  js  c++  java
  • 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"/>
  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7061563.html
Copyright © 2011-2022 走看看