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"/>

转载于:https://www.cnblogs.com/mfmdaoyou/p/7061563.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值