9.Android之日期对话框DatePicker控件学习
设置日期对话框在手机经常用到,今天来学习下。
首先设置好布局文件:如图
xml对应代码
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- android:id="@+id/LinearLayout01"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <EditText
- android:id="@+id/edit1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:editable="false"/>
- <Button
- android:id="@+id/btnDate"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="日期对话框"/>
- <Button
- android:id="@+id/btnTime"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="时间对话框"/>
- <DigitalClock
- android:id="@+id/digitalClock1"
- android:gravity="center"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="DigitalClock" />
- <AnalogClock
- android:id="@+id/analogClock1"
- android:gravity="center"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
注意:EditText里面android:editable="false"这句作用是让编辑框处于不可编辑状态
接下来我们修改下MainActivity.java代码,如下:
- package com.example.datepickerdialog;
- import java.util.Calendar;
- import android.app.Activity;
- import android.app.DatePickerDialog;
- import android.app.Dialog;
- import android.app.TimePickerDialog;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.EditText;
- import android.widget.TimePicker;
- public class MainActivity extends Activity {
- private EditText m_edit = null;
- private Button m_btnDate = null;
- private Button m_btnTime = null;
- private final static int DIALOG_DATE = 0;
- private final static int DIALOG_TIME = 1;
- private Calendar c = null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- m_edit = (EditText)findViewById(R.id.edit1);
- m_btnDate = (Button)findViewById(R.id.btnDate);
- m_btnTime = (Button)findViewById(R.id.btnTime);
- m_btnDate.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showDialog(DIALOG_DATE);
- }
- });
- m_btnTime.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showDialog(DIALOG_TIME);
- }
- });
- }
- protected Dialog onCreateDialog(int id){
- Dialog dialog = null;
- switch(id){
- case DIALOG_DATE:
- c = Calendar.getInstance();
- dialog = new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener() {
- public void onDateSet(DatePicker dp, int year,int month, int dayOfMonth) {
- m_edit.setText("您选择了:" + year + "年" + (month+1) + "月" + dayOfMonth + "日");
- }
- }, c.get(Calendar.YEAR), // 传入年份
- c.get(Calendar.MONTH), // 传入月份
- c.get(Calendar.DAY_OF_MONTH) // 传入天数
- );
- break;
- case DIALOG_TIME:
- c=Calendar.getInstance();
- dialog=new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener(){
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- m_edit.setText("您选择了:"+hourOfDay+"时"+minute+"分");
- }
- },
- c.get(Calendar.HOUR_OF_DAY), //小时
- c.get(Calendar.MINUTE), //分钟
- false
- );
- break;
- }
- return dialog;
- }
- @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);
- }
- }
提示:在这里我犯了一个小错误,就是重写onCreateDialog函数时我错写成OnCreateDialog,结果运行程序,点击日期和时间对话框都没有效果显示,所以大家在写代码时要注意这些细节。
最后运行效果:
9.Android之日期对话框DatePicker控件学习的更多相关文章
- Flutter 日期时间DatePicker控件及国际化
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 DatePicker Flutter并没有DatePick ...
- 8.Android之日期DatePicker和时间TimeTicker控件学习
手机设置时间日期很普遍,今天就梳理下. 首先在拖入一个按钮 ,日期和时间控件到工程里,如图: 代码如下: <?xml version="1.0" encoding=" ...
- DatePicker日期与时间控件
DatePicker日期与时间控件 一.简介 二.方法 最日常的使用方法了 日期控件DatePicker 时间控件TimePicker 月份从0开始 三.代码实例 效果图: 代码: fry.Activ ...
- iOS开发-DatePicker控件
时间控件不管是Android还是iOS中都是必然存在的一个控件,具体的效果大同小异,显示日期,时间,iOS中有四种方式可以选择,Time, Date,Date and Time , Count Do ...
- 带农历日历的DatePicker控件!Xamarin控件开发小记
原文:带农历日历的DatePicker控件!Xamarin控件开发小记 闲来无事开发了个日期选择控件,感兴趣的同学前往: https://github.com/MatoApps/Mato.DatePi ...
- Android布局属性与常用控件
一.Android常用布局属性 1. LinearLayout的特有属性 android:orientation:设置布局排列方式 android:layout_weight:设置所占布局的权重 ...
- Android开发中目前流行控件和知识点总结
Android开发中目前流行控件和知识点总结 1.SlidingMenu 滑动菜单 应用案例:Facebook . Path 2.0 .人人.网易新闻 下载地址: https://github.c ...
- Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比 上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1 ...
- Android开源的精美日历控件,热插拔设计的万能自定义UI
Android开源的精美日历控件,热插拔设计的万能自定义UI UI框架应该逻辑与界面实现分离,该日历控件使用了热插拔的设计 ,简单几步即可实现你需要的UI效果,热插拔的思想是你提供你的实现,我提供我的 ...
随机推荐
- [cb] Unity Editor 添加右键菜单
需求 为Unity的Editor窗口添加右键菜单 实现代码 // This example shows how to create a context menu inside a custom Edi ...
- unix基本命令日记
鉴于命令经常忘记,网站文章鱼龙混杂,很多不适合自己,现在记录方便自己查看.每个人的基础不同,需要合适的文章也不一样. 用户管理 useradd 功能说明:建立用户帐号. 语 法:useradd [-m ...
- Linux环境安装Jenkins
安装环境: CenOS 6.4 JDK_1.6.0_23 一.安装前检查环境 检查是否安装JDK: java --version 二.安装Jenkins 1. 添加Jenkins的源(reposito ...
- Android签名机制:生成keystore、签名、查看签名信息
转自:http://www.ourunix.org/post/146.html
- Git 详解
1. Git 1.1. Git是何方神圣? Git是用C语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状 态可以是不同的文 ...
- iOS宏定义
1.__OBJC__宏定义作用 在.pch 文件中一般都会自动加上这句宏定义,表示宏内引用的文件确保只被使用Objective-C语言的文件所引用,保证引用关系的清晰.因为在一个OC工程中,可能包含. ...
- PHP 运行方式(PHP SAPI介绍)
SAPI:Server Application Programming Interface 服务器端应用编程端口.它就是PHP与其它应用交互的接口,PHP脚本要执行有很多种方式,通过Web服务器,或者 ...
- center
center标签对其包围的文本进行水平居中处理
- Android Studio Jar、so、library项目依赖
Eclipse跟AS的不同 从Eclipse到AS不要带着在Eclipse中的主观色彩去在AS中使用,从项目的构成到构建是不同的,下面列举在Eclipse和AS中的一些概念的区别: WorkSpace ...
- mysql实体关系
数据库连接细节架构: 数据库编码: 关系数据库玩的是生活中物与物之间的关系.那么数据库要保存数据,事先就要描述情况数据如何保存.事务之间的关系如何处理等等. 现实生活中物称为实体,如商品,学生,文章, ...