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

Android学习笔记(二一):有趣的widget-日期和时间

阅读更多

Android提供了日期和时间的widget。

日期widget

DatePicker和DatePickerDialog,DatePickerDialog是装载DatePicker的一个简单的容器,如图所示。分别有一个触发方法OnDateChangedListener( ) 和OnDateSetListener( )。

在这个例子中,我们设置了两个button和一个textView,当按键弹出DatePickDialog。

步骤1:一些有关时间的java函数

  • 获得当前时间的实例:Calendar calendar = Calendar.getInstance();
  • 获得当前时间:calendar.get(Calendar.YEAR),通过设置参数可获得年,月,日,时,分,秒
  • 设置时间:calendar.set(Calendar.YEAR,2011),可设置年,月,日,时,分,秒
  • 用String给出当前的时间信息,可以使用Java的SimpleDateFormat,如下处理:
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //可以设置不同的类型
    通过sdf.format(calendar.getTime()就可以获得相关的info string,可供出来

步骤2:设置Android XML文件并编写有关的代码(略去)

步骤3:弹出日期Dialog,并设置Set的触发回调函数

new DatePickerDialog(
/*参数1:context,在我的例子是内部类中调用,所有需指明this是那个this*/ Chapter9Test1.this,
/*参数2:设置Set日期的回调函数*/ dateSet,
/*参数3,4,5:设置的年月日*/ calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE)).show() ;

最后一个show()表示将dialog显示出来。Set的回调函数,是OnDateSetListener(),如下:

DatePickerDialog.OnDateSetListener dateSet = new DatePickerDialog.OnDateSetListener() {
public void onDateSet (DatePicker view, int year, int monthOfYear, int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DATE, dayOfMonth);

}
};

时间widget

日期的非常相似,TimePickerDialog(可以通过OnTimeSetListener设置回调函数)是装载TimePicker(可通过OnTimeChangedListener设置回调函数)的简单Dialog的容器。

弹出Dialog,可以照着画瓢,采用如下方式。同样的第一个参数是context,第二个参数是回调函数,第三和第四是时和分,第5个参数表示是否24小时制的显示方式。

new TimePickerDialog(Chapter9Test1.this, timeSet, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show() ;

对于回调函数timeSet,可通过如下设置:

TimePickerDialog.OnTimeSetListener timeSet = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet (TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE,minute);

}
};

在Activity中调起Dialog的其他方式

在上面的例子中,创建了xxxPickerDialog,通过show()方法将它们调起来。在Android的Tutorial的例子在,可以重写Acitivity的onCreateDialog方法来实现,下面以调起日期的Dialog为例子。

public class Chapter9Tutorial1 extends Activity {
... ...
//步骤1:给出我们需要显示的不同Dialog的ID ,以便能判断显示哪个Dialog
static final int DATE_DIALOG_ID = 0;
//步骤2:通 showDialog(Dialog ID)调起相应的Dialog
protected void someMethod(.... ) {
... ...
showDialog(DATE_DIALOG_ID);
... ...
}

//重写Acitivity的方法 onCreateDialog(int id),该方法告诉showDialog() ,要显示哪个Dialog,给出Dialog的对象
protected Dialog onCreateDialog(int id) {
switch(id){
case DATE_DIALOG_ID:
return new DatePickerDialog(
this,mDateSetlisten,mYear,mMonth,mDay);

... ...
}
return super.onCreateDialog(id); //或者直接return null;
}
}

模拟时钟和数字时钟

前面的例子,我们通常要设置某个日期或者时间,如果我们只是想向用户显示当前的时间,可以采用模拟始终和数字时钟。如图所示,下面是相关的Android XML文件:

<RelativeLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<AnalogClock android:id="@+id/c91_analog"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true" />
<DigitalClock android:id="@+id/c91_digital"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/c91_analog" />
</RelativeLayout>

计时器Chronometer

Android提供一个计时器Chronometer,这个widget的类似DiagitalClock,在XML中通过使用<Chronometer ... /> 来定义。下面是来自Android reference的一个例子。最上面的就是Chronometer widget。

有下面几个关键的控制函数:

  • start():开始实时更新计时器
  • stop():停止实时更新计时器,注意,实际上计时器还在走
  • setbase():设置初始的基准时间,如果设置当前时间,setBase(SystemClock.elapsedRealtime()),即重置计时器,计时器归零
  • format():设置显示格式,缺省为MM:SS或者H:MM:SS,如果我们希望显示的内容是"我的计时器 00:00",可以使用format("我的计时器 %s"),第一个%s,表示缺省的时间格式。如果清空格式,采用缺省的,看通过format(null)来实现。

等级羽毛球

周六时单位网络公布了今年羽毛球比赛的赛时,和往常并一样,这次取消了女单,增加了双打,不是男双,不是女双,不是混双,是权双。必须是三级部门领导以上,必须其中一人是二级部门领导,性别不限。也就是现在打球人是分三六九等,至于“地位”相当的人,只有资格站在同一球场上。好像印度的种姓也在搞类似的东西。人群中存在分工不同,有些人能力强些,责任大写,得到的报酬也不同,但是人群中没有等级,生不带来死不带去的。在球场上,总是场外的事情太多,就像足球。

相关链接:我的Andriod开发相关文章

分享到:
评论

相关推荐

    Android学习笔记(二一):有趣的widget-日期和时间.doc

    在Android开发中,日期和时间的处理是常见且重要的任务,Android系统提供了专门的Widget来帮助开发者实现这一功能。本文将详细讲解如何使用DatePicker和TimePicker Widget,以及它们的Dialog形式,即...

    配套学习资料:Java开发 - 尚硅谷JavaWeb学习笔记

    学习笔记请看我写的文章: Java开发 - 尚硅谷JavaWeb学习笔记 - Part1: https://blog.csdn.net/qq_63317769/article/details/139883728 Java开发 - 尚硅谷JavaWeb学习笔记 - Part2: Java开发 - 尚硅谷JavaWeb...

    Android 学习笔记(十六):Widget-进度条.doc

    本篇学习笔记主要探讨这两种控件的使用和特性。 首先,`ProgressBar`通常用于呈现一个非交互式的进度条,它能够以不同样式展示进度,如水平、垂直或者旋转等形式。在XML布局文件中,我们可以使用以下方式创建一个`...

    《Android 群英传》读书笔记:自定义 View ---- 音频条形图

    《Android 群英传》读书笔记:自定义 View ---- 音频条形图 博客地址:http://blog.csdn.net/like_program/article/details/53352899

    《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-个人学习笔记及代码

    学习时的笔记及相关代码,笔记可见:https://blog.csdn.net/Morganfs/article/details/123926929?spm=1001.2014.3001.5501 学习来源:Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd ...

    Android学习笔记(九):Activity-RelativeLayout.doc

    而RelativeLayout是一种布局管理器,用于组织Android界面中的各个组件(Widget),它允许组件相对于其他组件或父容器的位置进行定位,提供了丰富的对齐和布局选项。本篇笔记将详细探讨如何在Activity中使用...

    Android学习笔记(十):Activity-TableLayout和ScrollView.doc

    本篇笔记主要关注在Activity中如何使用TableLayout和ScrollView这两种布局组件。 TableLayout是Android中的一个布局容器,它允许开发者按照表格的形式组织界面元素。TableLayout由TableRow组成,每个TableRow则包含...

    第一行代码 android学习笔记 完整版

    本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android的基本概念和开发技术。 一、Android系统架构 Android系统架构是Android开发的基础,系统架构包括Linux Kernel、...

    Android笔记

    ### Android学习笔记概览 #### 一、基础概念 1. **开篇介绍:** - 开始学习Android开发之前的基础介绍。 2. **框架简介:** - 对Android开发中的常用框架进行简单说明。 3. **工具介绍:** - Android开发中使用...

    Android 学习笔记(十三):Activity-GridView.doc

    在“Android 学习笔记(十三):Activity-GridView”这篇笔记中,主要讲解了如何在Activity中使用GridView以及如何自定义适配器来实现特定的UI效果。以下是关于这个主题的详细知识点: 1. **GridView基本概念**: ...

    现代OpenGL+Qt学习笔记之二:程序框架

    现代OpenGL+Qt学习笔记之二:程序框架http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77917697源码。

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的...

    Android学习笔记(六):xml和widget.doc

    本篇笔记将深入探讨XML布局和Widget的使用。 首先,XML布局中的填充策略对于Widget的排列至关重要。`fill_parent`属性(在新版本中改为`match_parent`)意味着一个组件将占用其父布局的全部剩余空间。如果多个...

    MSPM0G3507学习笔记1:开发环境-引脚认识与点灯

    MSPM0G3507学习笔记1:开发环境_引脚认识与点灯 今日速通一款Ti的单片机用于电赛:MSPM0G3507 这里默认已经安装好了Keil5_MDK 首先声明一下: 因为是速成,所以需要一定单片机学习基础,然后我写的也不会详细,这个...

    Android学习笔记(二二): 多页显示-Tag的使用.doc

    在Android开发中,多页显示通常涉及到Tab界面,这是一种用户友好的设计,使得用户能够轻松地在不同的功能或内容之间切换。Tag的使用在此过程中扮演着重要的角色,它提供了对各个页面的标识和管理。 **1. TabHost与...

    基于Django与PySide2开发的CloudNote学习笔记源码

    本项目是一款基于Python语言及Django框架和PySide2库开发的学习笔记应用——CloudNote。该应用致力于为用户提供一个便捷的云端笔记记录平台。 技术构成: - 主要编程语言:Python - 前端页面实现:PySide2(用于...

    Android开发学习笔记

    ### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...

    Android Studio 学习笔记-新手入门-(1)第一个案例

    2. **布局设计**:Android Studio会自动生成一个默认的布局文件(res/layout/activity_main.xml)。在这里,我们将看到一个简洁的界面,包含一个TextView和一个Button。TextView用于显示文本,而Button则是用户与...

    Android学习笔记(二):安装环境.doc

    这篇“Android学习笔记(二):安装环境”详细介绍了如何准备必要的软件和工具,让我们一起深入探讨这些步骤。 1. **Java Development Kit (JDK)**: JDK是Java开发的基础,包括了Java编译器、调试器和Java运行环境...

Global site tag (gtag.js) - Google Analytics