原文:http://blog.csdn.net/fwwdn/article/details/7550822

本文利用ContextMenu(上下文菜单),Chronometer实现简单计数器。

Main.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width= "fill_parent"
  5. android:layout_height = "fill_parent"
  6. android:gravity = "center_horizontal"
  7. >
  8. <Chronometer
  9. android:id ="@+id/chronometer"
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:format="%s"
  13. android:textSize="80px"
  14. android:textColor="#00FF00"
  15. />
  16. </LinearLayout >

/layout/menu/context_menu.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:id="@+id/timer_start" android:title=" 开始计时 " />
  4. <item android:id="@+id/timer_stop" android:title=" 终止计时 " />
  5. <item android:id="@+id/timer_reset" android:title=" 清零 " />
  6. </menu>

主Activity:

  1. public class MainActivity extends Activity {
  2. private Chronometer timer;
  3. @Override
  4. public void onCreate(Bundle savedInstanceState)
  5. {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. // 获得计时器对象
  9. timer = (Chronometer)this.findViewById(R.id.chronometer);
  10. //长按计时器时,出现上下文菜单
  11. this.registerForContextMenu(timer);
  12. }
  13. //创建上下文菜单
  14. @Override
  15. public void onCreateContextMenu(ContextMenu menu, View v,
  16. ContextMenuInfo menuInfo)
  17. {
  18. super.onCreateContextMenu(menu, v, menuInfo);
  19. // ContextMenu的Item不支持Icon,所以不用再资源文件中,为它们设定图标
  20. if (v.getId() == R.id.chronometer)
  21. {
  22. //加载xml菜单布局文件
  23. this.getMenuInflater().inflate(R.menu.context_menu, menu);
  24. // 设定头部图标
  25. menu.setHeaderIcon(R.drawable.icon);
  26. // 设定头部标题
  27. menu.setHeaderTitle(" 计时器控制选项 ");
  28. }
  29. }
  30. //选择菜单项后的响应
  31. @Override
  32. public boolean onContextItemSelected(MenuItem item)
  33. {
  34. switch (item.getItemId())
  35. {
  36. case R.id.timer_start:
  37. // 将计时器清零
  38. timer.setBase(SystemClock.elapsedRealtime());
  39. //开始计时
  40. timer.start();
  41. break;
  42. case R.id.timer_stop:
  43. //停止计时
  44. timer.stop();
  45. break;
  46. case R.id.timer_reset:
  47. //将计时器清零
  48. timer.setBase(SystemClock.elapsedRealtime());
  49. break;
  50. }
  51. return super.onContextItemSelected(item);
  52. }
  53. }

运行结果如图所示:


长按计时器弹出上下文菜单选择开始计时:

Android简单计时器(转)的更多相关文章

  1. Android简单计时器

    本文利用ContextMenu(上下文菜单),Chronometer实现简单计数器. Main.xml: <?xml version="1.0" encoding=" ...

  2. Android Wear计时器开发

    记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间.随着Android Wear的问世,在可穿戴设备中开发一款这样的App确实是个很不错的想 ...

  3. Android简单逐帧动画Frame的实现(二)

    Android简单逐帧动画Frame的实现   Android简单逐帧动画Frame的实现 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: 1. 在工程里 ...

  4. Android倒计时器——CountDownTimer

    Android倒计时器--CountDownTimer 说明 第一个参数是倒计时的时间 第二个参数是多长时间执行一次回调 /** * @param millisInFuture The number ...

  5. QML学习笔记(六)- 简单计时器和定时器

    做一个简单的qml计时器和定时器,左键触发计时,右键触发定时 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(六)- 简单计时器和定时器 左键点击按钮,触发计时器,中键可以暂停计时,同 ...

  6. Android简单文件浏览器源代码 (转)

    Android简单文件浏览器源代码 (转) activity_main .xml <LinearLayout xmlns:android="http://schemas.android ...

  7. Android 绘制计时器

    用小米的手机,发现其实还可以,无意间点开小米的计时器,发现界面非常好看和实用.于是自己仿照着写一个,由于技术不好,代码整体结构上可能有点乱,但主要的实现功能和掌握知识点. Android中绘制采用ca ...

  8. Android简单介绍SharedPreference,内部文件,sdcard数据存储

    SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getShar ...

  9. android简单登陆和注册功能实现+SQLite数据库学习

    最近初学android,做了实验室老师给的基本任务,就是简单的登陆和注册,并能通过SQLite实现登陆,SQlLite是嵌入在安卓设备中的 好了下面是主要代码: 数据库的建立: 这里我只是建立了一个用 ...

随机推荐

  1. Linux - Shebang(#!)

    1. Shebang这个符号通常在Unix系统的脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序.

  2. ParameterizedType 使用方法

    ParameterizedType 它是jdk提供的参数化类型,包括了如下 请求参数,和响应参数都是 参数话类型.记住凡是含有<T>中的都是参数话类型. public static < ...

  3. cemtos安装python

    mkdir python3cd python3/yum -y install gcc*yum install zlib-devel bzip2-devel openssl-devel ncurses- ...

  4. 小程序云函数调用webservice接口

    https://www.jianshu.com/p/2692e56251ac 小程序最近新出来了云开发能力,主要依赖了node.js(运行在服务器上的js),可以让我们在没有服务器的情况下,使用云开发 ...

  5. 【译】索引进阶(十七): SQL SERVER索引最佳实践

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 在本章我们给出一些建议:贯穿本系列我们提取出了十四条基本指南,这些基本的指南将会帮助你为你的数据库创建最佳的索引 ...

  6. vue学习笔记:vue的认识与特点与获取

    Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...

  7. 从零构建以太坊(Ethereum)智能合约到项目实战——第20章 搭建自己的私有链网络

    P75 .1-以太坊私网建立 .合约编译.部署完全教程(1) 使用此博文进行安装配置:https://blog.csdn.net/w88193363/article/details/79402074 ...

  8. 吴裕雄--天生自然PythonDjangoWeb企业开发:框架基础和技术选型

    简单的Web Server import socket eol1 = b'\n\n' eol2 = b'\n\r\n' body = '''Hello,world!<h1>tszrwyx& ...

  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:联合使用所有表格类

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. linux磁盘管理1-分区格式化挂载,swap,df,du,dd

    一些基础 硬盘接口类型 ide 早期家庭电脑 scsi 早期服务器 sata 目前家庭电脑 sas 目前服务器 raid卡--阵列卡 网卡绑定 ABI 应用程序与OS之间的底层接口 API 应用程序调 ...