热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

AndroidView添加Listener实例代码

在开发中为控件添加Listener是非常常见的工作,最简单的添加Listener方式可以这样

代码如下:

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

代码如下:

  
    android:orientation="vertical"  
    android:layout_  
    android:layout_  
    >  
    android:layout_    
    android:layout_    
    android:text="@string/hello"  
    />  
    android:text="Button01"    
    android:id="@+id/Button01"    
    android:layout_    
    android:layout_  
    android:OnClick="myClickHandler01"  
    />  
    android:text="Button02"    
    android:id="@+id/Button02"    
    android:layout_    
    android:layout_  
    android:OnClick="myClickHandler02"  
    />  
    android:layout_    
    android:layout_    
    android:text="@string/hello"  
    />  
 

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

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;   
         }   
    }   
}


推荐阅读
  • 使用URLHttpConnection获取并展示图片至ImageView的方法
    本文介绍如何通过URLHttpConnection方式从网络加载图片,并将其显示在Android应用的ImageView组件上。包括布局文件和Java代码的具体实现。 ... [详细]
  • JobScheduler5.0源码分析
    0.JobScheduler执行代码mJobScheduler(JobScheduler)getSystemService(Context.JOB_SCHEDULER_SERVICE); ... [详细]
  • 获取年月日,之前的日期不能选择日历cCalendar.getInstance();获取系统的工具类【可以获取时间】DatePickerDialogdate ... [详细]
  • React Native 开发者如何高效替换 Android 图标与布局资源
    针对未接触过 Android 开发的 React Native 开发者,本文提供了详细的指南,帮助他们了解如何轻松替换 Android 应用中的图标和布局资源,包括对 APK 结构的基本认识及多种替换方法。 ... [详细]
  • Hibernate入门指南:单表数据库操作详解
    本文介绍了Hibernate作为全面的ORM框架的基础知识,并详细讲解了在MyEclipse环境中配置Hibernate以及进行基本的数据库单表操作的方法,包括增删改查等常见操作。 ... [详细]
  • 1.选择一个翻译页面,我选择的是有道词典(http:dict.youdao.com)2.随便输入一个英语单词进行翻译,然后查看源文件,找到 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • 本文总结了几个常用的Android开发技巧,包括检测设备上是否安装特定应用、获取应用的版本名称、设置状态栏透明以及如何从一个应用跳转至另一个应用的方法。 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • Android开发经验分享:优化用户体验的关键因素
    随着Android市场的不断扩展,用户对于移动应用的期望也在不断提高。本文探讨了在Android开发中如何优化用户体验,以及为何用户体验的重要性超过了技术本身。 ... [详细]
  • Vue 中实现 ECharts 组件的动态刷新与分页
    本文介绍了如何在 Vue 项目中使用 ECharts 组件实现数据的动态刷新和分页显示。通过合理的数据处理和页面逻辑设计,提升用户体验。 ... [详细]
  • django项目中使用手机号登录
    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数function.py文件se ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
  • Linux环境下的PHP7安装与配置指南
    本文详细介绍了如何在Linux操作系统中安装和配置PHP7,包括检查当前PHP版本、升级PHP以及配置MySQL支持等步骤,适合后端开发者参考。 ... [详细]
  • 本文探讨了在使用 ClickOnce 部署方式时遇到的自动更新失败问题,包括本地安装与服务器安装的不同表现,并提供了详细的解决方案。 ... [详细]
author-avatar
aotu蛮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有