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;
}
}
}
推荐阅读
热点文章
android中Bitmap用法(显示,保存,缩放,旋转)实例分析
12
android 仿微信聊天气泡效果实现思路
1
Android的尺度,drawable-xxxxxxx
2
Codeforces Round #656 (Div. 3) (C、D题)
1
Android之handler异步消息处理机制解析
6
GridView中图片显示出现上下间距过大,左右图片显示类似瀑布流的问题
0
AsyncTask的简单使用
5
两个简单Fragment之间的通信(三种方式)
18
uboot修改设置boot参数命令
41
android中实现从相册中一次性获取多张图片与拍照,并将选中的图片显示出来
2