`
hellsing42
  • 浏览: 262057 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 1.6简便添加监听器的方法

阅读更多

在开发中为控件添加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;
            	 }
            }
        }

         参考文章:《UI framework changes in Android 1.6 》(需翻墙)

        分享到:
        评论
        1 楼 springfield 2010-03-06  
        挺不错的一个方法,学习啦

        相关推荐

          Android实现静态广播监听器的方法

          总结来说,实现Android静态广播监听器的关键步骤包括: 1. 创建继承自`BroadcastReceiver`的类,并在`AndroidManifest.xml`中静态注册。 2. 在`BroadcastReceiver`的`onReceive()`方法中处理广播事件。 3. 使用`...

          android 外部类作为事件监听器类

          在Android开发中,事件监听器(Event Listeners)是实现用户交互和响应各种事件的关键机制。标题提到的“android 外部类作为事件监听器类”是指将一个非匿名类(外部类)作为事件处理的对象,这在某些情况下可能是...

          Android实现信号强度监听的方法

          `listen()`方法会将我们的监听器添加到`TelephonyManager`,从而开始监听。 需要注意的是,为了能够访问到电话相关的敏感信息,你的应用需要在AndroidManifest.xml文件中声明`READ_PHONE_STATE`权限: ```xml ...

          Android Button与点击监听器Demo源码.rar

          此外,除了`OnClickListener`,Android还提供了其他类型的监听器,如`OnLongClickListener`用于处理长按事件,以及`View.OnTouchListener`用于处理更精细的触摸事件。这些监听器可以单独或组合使用,以满足各种交互...

          Android计算器源码(1.6版)

          【Android计算器源码详解(1.6版)】 在Android开发领域,计算器应用是一个常见的学习项目,它能够帮助开发者理解基本的用户界面构建、事件处理以及计算逻辑。本篇文章将详细解析一个基于Android 1.6版本的计算器...

          android全局事件监听器

          在Android开发中,全局事件监听器是一种非常实用的设计模式,它允许开发者在整个应用程序范围内监听特定的事件,而无需在每个需要响应的类中都添加监听代码。标题中的"android全局事件监听器"指的是一个实现此类功能...

          各种Android Dialog创建及其监听事件实现

          在Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是...

          android 后台监听按键事件方法及demo

          android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo

          Android中ListView添加头部

          此外,如果你的头部视图需要响应用户的触摸事件,记得设置点击监听器。例如,你可以将一个Button放在头部视图中,并为其添加`OnClickListener`。 综上所述,添加头部到Android的ListView是一项常见的自定义需求。...

          android Button监听事件的几种类型

          在Android开发中,Button...理解并熟练运用这些监听器,能让你的Android应用更加灵活和响应用户操作。在实际项目中,还可以结合其他组件和设计模式,如使用LiveData和ViewModel,来实现更高效的数据绑定和响应式编程。

          Android在Fragment中实现监听触摸事件

          在实现Fragment中监听触摸事件时,需要注意的是,需要在Fragment中维护一个监听器列表,并且需要在Fragment中实现dispatchTouchEvent方法,以便将触摸事件分发给每个监听器。此外,还需要在使用时,将监听器注册到...

          android 利用重力感应监听

          在Android开发中,利用重力感应来实现特定功能是一种常见的技术。通过集成传感器API,开发者可以获取设备的重力变化数据,从而实现如来电时翻转手机静音这样的实用功能。下面将详细介绍如何在Android中利用重力感应...

          Android软键盘打开/关闭监听器

          在开发时遇到一个问题,需要对软...但是由于android不直接提供对软键盘打开与关闭操作的监听器,所以必须自己来写一个关于软键盘打开/关闭的监听器。 原理是通过对OnGlobalLayoutListener()来实现对软键盘的状态监听器

          android 动态添加图片

          使用`View.setOnClickListener()`方法设置监听器。 总之,动态添加图片在Android应用中涉及多个层面,包括组件的动态创建、图片的选择与处理、用户交互以及网络通信等。`multiimagechooser-master`项目是一个很好的...

          Android 9 添加开机音乐

          在Android系统中,添加开机音乐是一项个性化设置,可以让用户在设备启动时听到自己喜欢的音乐,提升使用体验。在Android 9(Pie)版本中,虽然系统默认并未提供直接的开机音乐设置选项,但通过一些技术手段,我们...

          Android数据库内容变化的监听

          最后,ContentResolver 类提供了 notifyChange 方法,用于通知所有注册到 Uri 的监听器,告诉他们内容发生了改变。该方法需要两个参数:Uri 和 ContentObserver。Uri 是要通知的 Uri,ContentObserver 是一个实现了 ...

          java android 文件监听器

          在Android平台上,开发Java应用程序时,我们经常需要处理与文件系统相关的任务,其中之一就是实现文件监听器。这个功能允许我们实时监控一个特定的文件夹,一旦该文件夹中有新的文件出现,程序可以立即做出响应,...

          Android编程自定义View时添加自己的监听器示例

          Android编程自定义View时添加自己的监听器示例 Android编程自定义View时添加自己的监听器是Android开发中的一项重要技术,通过添加自己的监听器,可以实现自定义View中的事件监听和回调机制。在Android中,监听器是...

          Android中为View添加事件监听的使用说明(以Button为例).pdf

          第二种方法可以复用监听器,减少了代码量,但判断逻辑可能复杂;第三种方法则让布局和事件处理更加分离,更符合声明式编程的理念,但不适合需要复杂逻辑的情况。 在实际开发中,开发者可以根据项目需求和个人喜好...

          Android实现监听电话呼叫状态的方法

          然后,我们需要创建一个`PhoneStateListener`的子类,这个监听器会接收并处理电话状态的变化。在子类中重写`onCallStateChanged`方法,该方法会在电话状态改变时被调用。下面是`PhoneStateListener`的基本实现: ``...

        Global site tag (gtag.js) - Google Analytics