用户登录
用户注册

分享至

Android View添加 Listener 实例代码

  • 作者: 那晚越女说我?
  • 来源: 51数据库
  • 2021-11-22

复制代码 代码如下:

findviewbyid(r.id.mybutton).setonclicklistener(new view.onclicklistener() {   
    public void onclick(view v) {   
        // do stuff   
    }   
});


 采用上述方法添加listener有个缺点就是如果控件太多的话,listener数量也会增多,因此,可以采用如下的小窍门减少listener的数量:

复制代码 代码如下:

view.onclicklistener handler = view.onclicklistener() {   
    public void onclick(view v) {   
        switch (v.getid()) {   
            case r.id.button01: // dostuff   
                break;   
            case r.id.button02: // dostuff   
                break;   
        }   
    }   
}   

findviewbyid(r.id.mybutton).setonclicklistener(handler);   
findviewbyid(r.id.myotherbutton).setonclicklistener(handler); 

在android1.6里面,添加listener的工作变得相当的简单(感觉更像在做网页编程!),具体步骤如下:

1.首先在layout里面定义button并指定响应的listener

复制代码 代码如下:

<xml version="1.0" encoding="utf-8"?>  
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >  
<textview     
    android:layout_width="fill_parent"    
    android:layout_height="wrap_content"    
    android:text="@string/hello"  
    />  
<button    
    android:text="button01"    
    android:id="@+id/button01"    
    android:layout_width="wrap_content"    
    android:layout_height="wrap_content"  
    android:onclick="myclickhandler01"  
    />  
<button    
    android:text="button02"    
    android:id="@+id/button02"    
    android:layout_width="wrap_content"    
    android:layout_height="wrap_content"  
    android:onclick="myclickhandler02"  
    />  
<textview     
    android:layout_width="fill_parent"    
    android:layout_height="wrap_content"    
    android:text="@string/hello"  
    />  
</linearlayout> 

其中以下这两行就是新增的特性:

android:onclick="myclickhandler01"

android:onclick="myclickhandler02"

 

2.在活动里面定义public的方法myclickhandler01、和myclickhandler02(注意这两个方法必须有一个view的形参)。

复制代码 代码如下:

package com.ray.test;   

import android.app.activity;   
import android.os.bundle;   
import android.view.view;   

public class testonclicklistener extends activity {   

    @override  
    public void oncreate(bundle savedinstancestate) {   
        super.oncreate(savedinstancestate);   
        setcontentview(r.layout.main);   

  
    }   
    public void myclickhandler01(view target){   
        settitle("myclickhandler01");   
    }   
    public void myclickhandler02(view target){   
        settitle("myclickhandler02");   
    }   

当然,你也可以采用这种写法:

将两个按钮设置到同一个listener

android:onclick="myclickhandler"

android:onclick="myclickhandler"

复制代码 代码如下:

package com.ray.test;   

import android.app.activity;   
import android.os.bundle;   
import android.view.view;   

public class testonclicklistener extends activity {   

    @override  
    public void oncreate(bundle savedinstancestate) {   
        super.oncreate(savedinstancestate);   
        setcontentview(r.layout.main);   
    }   
    public void myclickhandler(view target){   
         switch (target.getid()) {   
         case r.id.button01:    
             settitle("myclickhandler01");   
             break;   
         case r.id.button02:    
             settitle("myclickhandler02");   
             break;   
         }   
    }   
}

软件
前端设计
程序设计
Java相关