Android 用一个监听器实现多个监听
来源:互联网 发布:格拉姆矩阵 编辑:程序博客网 时间:2024/05/02 02:22
012-05-30 14:11 633人阅读 评论(1) 收藏 举报
在android应用程序中,有时要用到很多的按钮元件,每个按钮都要有一个监听事件,为了让代码看起来干净简洁,并节省一些内存,我们可以用一个监听器(Listener)来实现多个按钮的onClick监听,下面是一个具体的例子:
- package com.android;
- import android.app.Activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class IntentSelectActivity extends Activity implements View.OnClickListener{
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button button1 = (Button)findViewById(R.id.btn1);
- Button button2 = (Button)findViewById(R.id.btn2);
- Button button3 = (Button)findViewById(R.id.btn3);
- button1.setOnClickListener(this);
- button1.setTag(1);
- button2.setOnClickListener(this);
- button2.setTag(2);
- button3.setOnClickListener(this);
- button3.setTag(3);
- }
- public void onClick(View v){
- int tag = (Integer) v.getTag();
- switch(tag){
- case 1:
- Intent music = new Intent(Intent.ACTION_GET_CONTENT);
- music.setType("audio/*");
- startActivity(Intent.createChooser(music, "Select music"));
- break;
- case 2:
- Intent dial = new Intent();
- dial.setAction("android.intent.action.CALL");
- dial.setData(Uri.parse("tel:13428720000"));
- startActivity(dial);
- break;
- case 3:
- Intent wallpaper = new Intent(Intent.ACTION_SET_WALLPAPER);
- startActivity(Intent.createChooser(wallpaper, "Select Wallpaper"));
- break;
- default :
- break;
- }
- }
- }
这段代码用三个按钮实现了三个Intent意图:音乐播放、自动拨号、背景选择。只用了一个onClick处理,这样代码看起来简洁了很多。
备注,Intent的属性写法与常数写法:
- 属性写法
Intent dial = new Intent();
dial.setAction("android.intent.action.CALL"); - 常数写法
Intent wallpaper = new Intent(Intent.ACTION_SET_WALLPAPER);
Intent music = new Intent(Intent.ACTION_GET_CONTENT);
在Intent类中,定义了action的常数。在记忆技巧上,可以用 xxx对应到ACTION_xxx 的方式记。例如:
CALL(android.intent.action.CALL)就是ACTION_CALL(Intent.ACTION_CALL)。
程序运行效果为:
转载请注明出处:http://blog.csdn.net/imyang2007/article/details/7616075
- Android 用一个监听器实现多个监听
- Android 用一个监听器实现多个监听
- [Android] 用一个监听器实现多个监听
- Android用一个监听器实现多个监听
- Android 用一个监听器实现多个监听
- Android 用一个监听器实现多个监听
- Android 用一个监听器实现多个监听
- Android 用一个监听器实现多个监听
- android基础笔记——用一个监听器,实现多个按钮的监听
- 一个监听器监听多个事件 android学习(三)
- 一个监听器(Listener)实现多个按钮的onclick监听
- 多个按钮用同一个监听器监听
- 设置一个监听器监听多个按钮事件(点击按钮进入一个指定的网站)
- 多个监听器的绑定与监听
- 在spring使用activeMQ订阅多个topic并实现监听器监听
- Android开发20——单个监听器监听多个按钮点击事件
- Android开发20——单个监听器监听多个按钮点击事件
- 一个监听器绑定多个按钮控件
- 求任意年份任意月份的天数
- 地随碟附送预留1预留1预留1
- sphinx 在windows 环境下安装与使用
- 分别地方预留1预留1
- memset函数分析与迷惑
- Android 用一个监听器实现多个监听
- 在IOS中使用KeychainItemWrapper保存用户名和密码实现记住密码功能
- 预留1预留1合同合同
- Android里merge和include标签的使用
- 共预留1预留1
- ibatis扩展支持主键生成的方法(非数据库方式)
- 也均同意预留1预留1
- 自定义ServletRquestListener和ServletRequestAttributeListener的监听
- 使用as计算中文字符串长度