Android View添加 Listener 小技巧示例 关键字: android 、view、listener、小技巧
在开发中为控件添加Listener是非常常见的工作,最简单的添加Listener方式可以这样:
Java代码
findViewById(R.id.myButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do stuff
}
});
采用上述方法添加Listener有个缺点就是如果控件太多的话,Listener数量也会增多,因此,可以采用如下的小窍门减少Listener的数量:
Java代码
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代码
<?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的形参)。
Java代码
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"
Java代码
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;
}
}
}

更多相关文章

  1. 系出名门Android(5) - 控件(View)
  2. android 重用 c代码
  3. Android开发者实用代码片段
  4. SD卡读写文件 代码学习
  5. android 永远锁屏解决方法
  6. android基础入门控件详解(3)

随机推荐

  1. android6.0 netd设置dns
  2. Android(安卓)开发常用代码片段
  3. Android之万能适配器Adapter的使用
  4. AIR 2.5 App for Android(安卓)emulator
  5. android litepal(还是手写db的好用)
  6. android -------- 混淆打包报错(warning
  7. Ubuntu 下开发 Android(安卓)环境变量设
  8. android飞翔的小鸟……
  9. android
  10. 设置默认来电铃声 android