计时器(Chronometer)

  getBase()   基准时间

  setFormat()  设置显示格式

  start()  开始计时

  stop()  停止计时

  setOnChronometerListener  计时改变的监听事件

 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:layout_width="fill_parent"
5 android:orientation="vertical"
6 android:layout_height="fill_parent">
7 <Chronometer
8 android:id="@+id/tmd"
9 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"/>
11 <LinearLayout
12 android:orientation="horizontal"
13 android:layout_width="fill_parent"
14 android:layout_height="fill_parent">
15 <Button
16 android:id="@+id/btStart"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:text="开始计时"/>
20 <Button
21 android:id="@+id/btStop"
22 android:layout_width="wrap_content"
23 android:layout_height="wrap_content"
24 android:text="停止计时"/>
25 </LinearLayout>
26 </LinearLayout>
package come.waas;

import android.app.Activity;
import android.app.Service;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer; public class timer extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer);
Button bt1 = (Button)findViewById(R.id.btStart);
Button bt2 = (Button)findViewById(R.id.btStop);
final Chronometer ch = (Chronometer)findViewById(R.id.tmd);//获得震动服务 
final Vibrator b = (Vibrator) getApplication()
.getSystemService(
Service.VIBRATOR_SERVICE);//震动
bt1.setOnClickListener(new OnClickListener() { public void onClick(View v) {
ch.start();//开始计时
b.vibrate(new long[]{1000,1000,1000,2000}//震动频率
, 0);
}
}); bt2.setOnClickListener(new OnClickListener() { public void onClick(View v) {
ch.stop();//结束计时
ch.setBase(SystemClock.elapsedRealtime());//复位
         
}
});
}
}

TabHost布局

  TabActivity类常用方法

    getTabHost()  获取对象

  Layoutinflater类常用方法

    inflate(布局管理器ID,组件容器、组件参数,True)

    LayoutInflater from()  从指定容器之中获得LayoutInflater对象

  TabHost.TabSpec

    setindicator()  设置一个Tab

    setContent  设置要显示的组件ID

package come.waas;

import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec; public class lay extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();//创建Tabhost对象
LayoutInflater.from(this).
inflate(R.layout.lay,
tabHost.getTabContentView(),
true);
TabSpec s1 = tabHost.newTabSpec("tab1")//设置标签的ID
.setIndicator("选项一")//设置标签的显示内容
.setContent(R.id.tva);//设置标签的标题
tabHost.addTab(s1); TabSpec s2 = tabHost.newTabSpec("tab2")
.setIndicator("选项二")
.setContent(R.id.tvb);
tabHost.addTab(s2); TabSpec s3 = tabHost.newTabSpec("tab3")
.setIndicator("选项三")
.setContent(R.id.tvc);
tabHost.addTab(s3); }
}

Android高级控件(下)的更多相关文章

  1. Android 高级控件(七)——RecyclerView的方方面面

    Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...

  2. Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现

    Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...

  3. Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷

    Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...

  4. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现

    Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...

  5. Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例

    Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...

  6. Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系

    Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...

  7. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...

  8. Android高级控件(三)——&#160;使用Google ZXing实现二维码的扫描和生成相关功能体系

    Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 如今的二维码可谓是烂大街了.到处都是二维码.什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...

  9. Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义a ...

随机推荐

  1. VS停止调试,IIS Express也跟着关闭了

    问题描述: 我们会时不时地用VS进行调试,当点击停止调试的时候,网站再刷新一下,便会出现网页走丢的现象,然后需要重新打开网站,很是麻烦,令人抓狂.如何解决呢? 首先说下,为啥会产生这种问题? 大致描述 ...

  2. java基础语法(二)

    一.运算符 算数运算符 算数运算符用在数学表达式中,它们的作用和在数学中的作用一样. 操作符 描述 例子 + 两数相加 1+1=2 - 两数相减 2-1=1 * 两数相乘 1*1=1 / 两数相除 1 ...

  3. codewars sum of pairs

    Sum of Pairs Given a list of integers and a single sum value, return the first two values (parse fro ...

  4. 保存vuex状态刷新不消失

    写在App.vue中,所有页面共享此方法 export default { name: "app", components: {}, created() { // 页面每次刷新加载 ...

  5. cdq分治——bzoj2683简单题

    https://www.lydsy.com/JudgeOnline/problem.php?id=2683 知识点:1.以操作的顺序进行分治  2.cdq分治维护矩阵 3.计算比mid小的给比mid大 ...

  6. YOLOv4: Darknet 如何于 Docker 编译,及训练 COCO 子集

    YOLO 算法是非常著名的目标检测算法.从其全称 You Only Look Once: Unified, Real-Time Object Detection ,可以看出它的特性: Look Onc ...

  7. mysql 5.7密码策略和安装密码校验插件validate_password

    当执行sql:SHOW VARIABLES LIKE 'validate_password%';提示empty,说明没有安装密码插件 1.查看当前mysql安装的插件信息 mysql> show ...

  8. C#类库推荐 拼多多.Net SDK,开源免费!

    背景介绍 近两年拼多多的发展非常迅速,即便口碑一般,也没有网页端,奈何我们已经全面小康,6亿月收入1000以下,9亿月收入2000以下,所以因为价格原因使用拼多多的用户也越来越多了.同样的,拼多多也开 ...

  9. 人人框架renren-security |小记(第一篇)

    ​ 一丶首先介绍一下人人框架: 1.简介 renren-security | 轻量级权限管理系统 采用Spring.MyBatis.Shiro框架,开发的一套权限系统,极低门槛,拿来即用 支持分布式部 ...

  10. javac中不引人注目的编码小坑

    来看下面这段java程序: public class Test{ public static void main(String[] args){ System.out.println("哈哈 ...