时间与日期--MarsChen Android 开发教程学习笔记

2023-10-13 03:58

本文主要是介绍时间与日期--MarsChen Android 开发教程学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这节课是讲如何在设备中添加时间和日期的设定组块,让用户可以在开发者的应用中设定时间和日期。要点分别为:TimePicker(时间设定器) 、OnTimeChangeListener(时间改变监听器) 、DatePicker 日期设定器)和
AnalogClock(模拟时钟显示组件)。
T imePicker
在XML文件中,先声明<TimePicker/>必须在模拟器中运行,才能看清楚效果。
在JAVA代码中,先声明timepicker对象,通过绑定OnTimeChangedListener 监听器得知用户改变情况。在onTimeChange方法中,view 对象代表出发listener 的timepicker对象,houerOfDay 代表用户选择的小时,minute 代表用户选择的分钟。
若是将时间设定为24小时制,在JAVA代码中的onCreater 中调用setIs24HourView(boolean) 方法即可。
以上的缺点在于,每次用户改变时间都会予以显示,但是用户滑动时间设置组件的时候是有过程的,如果不断打印结果会显得非常乱,此时,添加一个按钮组件,当用户设定完时间,点击该按钮,再打印时间信息。做法是:在XML文件中添加按钮组件,在XML文件中设置button 对象,并设置继承自OnClickListener 的ButtonListener 监听器,其中hour 和minute 可分别用getCurrentHour() 和getCurrentMinute() 方法获得用户设定完成后的时间数值。
在界面中,时钟默认显示的时间是和模拟器或现实设备的系统时间相同,若要改变时间,可以通过在JAVA代码中调用setCurrentHour() 和setCurrentMinute() 方法实现。
OnTimeChangedListener
与TimePicker一起使用,主要监测用户对时间和日期的改变。
DatePicker
是一个用于用户设定日期的模块。
在布局文件XML中加入<DatePicker /> ,JAVA 代码中加入datepicker 对象。另外,加入按钮组件,也在JAVA 代码中加入button 对象,组成一个获得用户设定日期值的模式。但是不能用对DatePicker 的监听器,只能添加按钮的监听器ButtonListener (继承自OnClickListener ),在此监听器的onClick 方法中,分别通过getYear() 、getMounth() 和getDayOfMuouth() 方法获取用户设定完毕后的年、月、日的值。但是注意,以上所用的方法的月份是从0 开始算起的,所以打印行代码中值还是要加1 。
若要使DatePicker 在用户未设置之前显示的是开发者设定的时间,可在onCreate 方法中对datpicker 对象调用updateDate(int year, int mouth, int day) 方法。
AnalogClock(模拟时钟)
在XML中添加就可以啦。
在XML 文件中的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.shumin.lbs04.MainActivity" >

<TimePicker 
android:id="@+id/timepicker"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>

<DatePicker
android:id="@+id/datepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/timepicker"
android:layout_alignParentBottom="true" />
<Button 
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_toRightOf="@id/timepicker"
android:layout_above="@id/datepicker"
android:text="B"/>
</RelativeLayout>


在JAVA 文件中的代码:

package com.shumin.lbs04;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;


public class MainActivity extends ActionBarActivity {

private TimePicker timepicker;
private DatePicker datepicker;
private Button button;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timepicker=(TimePicker)findViewById(R.id.timepicker);
timePickerListener timepickerlistener =new timePickerListener();
datepicker=(DatePicker)findViewById(R.id.datepicker);
button=(Button)findViewById(R.id.button);
timepicker.setOnTimeChangedListener(timepickerlistener);
buttonListener buttonlistener=new buttonListener();
button.setOnClickListener(buttonlistener);

}
class buttonListener implements OnClickListener{

@Override
public void onClick(View v) {
int year=datepicker.getYear();
int month=datepicker.getMonth();
int day=datepicker.getDayOfMonth();
System.out.println(year+"年"+month+"月"+day+"日。");
}

}
class timePickerListener implements OnTimeChangedListener{

@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
System.out.println(hourOfDay+"时"+minute+"分。");
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}



这篇关于时间与日期--MarsChen Android 开发教程学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200598

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim