博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9.Android之日期对话框DatePicker控件学习
阅读量:4691 次
发布时间:2019-06-09

本文共 4225 字,大约阅读时间需要 14 分钟。

设置日期对话框在手机经常用到,今天来学习下。

首先设置好布局文件:如图

xml对应代码

1 
2
8 9
14 15
20
25 26
32 33
38 39

注意:EditText里面android:editable="false"这句作用是让编辑框处于不可编辑状态

接下来我们修改下MainActivity.java代码,如下:

1 package com.example.datepickerdialog;  2   3 import java.util.Calendar;  4   5 import android.app.Activity;  6 import android.app.DatePickerDialog;  7 import android.app.Dialog;  8 import android.app.TimePickerDialog;  9 import android.os.Bundle; 10 import android.view.Menu; 11 import android.view.MenuItem; 12 import android.view.View; 13 import android.widget.Button; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17  18 public class MainActivity extends Activity { 19  20     private EditText m_edit = null; 21     private Button m_btnDate = null; 22     private Button m_btnTime = null; 23     private final static int DIALOG_DATE = 0; 24     private final static int DIALOG_TIME = 1; 25     private Calendar c = null; 26      27     @Override 28     protected void onCreate(Bundle savedInstanceState) { 29         super.onCreate(savedInstanceState); 30         setContentView(R.layout.activity_main); 31          32         m_edit = (EditText)findViewById(R.id.edit1); 33         m_btnDate = (Button)findViewById(R.id.btnDate); 34         m_btnTime = (Button)findViewById(R.id.btnTime); 35               36         m_btnDate.setOnClickListener(new View.OnClickListener() { 37              38             @Override 39             public void onClick(View v) { 40                  showDialog(DIALOG_DATE);         41             } 42         }); 43          44         m_btnTime.setOnClickListener(new View.OnClickListener() { 45              46             @Override 47             public void onClick(View v) { 48                 showDialog(DIALOG_TIME);          49             } 50         }); 51     } 52      53     protected Dialog onCreateDialog(int id){ 54          55         Dialog dialog = null; 56         switch(id){ 57          58         case DIALOG_DATE: 59             c = Calendar.getInstance();  60              dialog = new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener() {   61                  public void onDateSet(DatePicker dp, int year,int month, int dayOfMonth) {   62                      m_edit.setText("您选择了:" + year + "年" + (month+1) + "月" + dayOfMonth + "日");    63                  }    64              }, c.get(Calendar.YEAR), // 传入年份                 65              c.get(Calendar.MONTH), // 传入月份                  66              c.get(Calendar.DAY_OF_MONTH) // 传入天数  67              ); 68             break; 69              70         case DIALOG_TIME: 71             c=Calendar.getInstance();               72             dialog=new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener(){    73                 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {     74                     m_edit.setText("您选择了:"+hourOfDay+"时"+minute+"分");                    75                 }   76             },   77             c.get(Calendar.HOUR_OF_DAY),  //小时 78             c.get(Calendar.MINUTE),       //分钟 79             false   80             );   81             break; 82         } 83         return dialog;         84     } 85      86  87     @Override 88     public boolean onCreateOptionsMenu(Menu menu) { 89         // Inflate the menu; this adds items to the action bar if it is present. 90         getMenuInflater().inflate(R.menu.main, menu); 91         return true; 92     } 93  94     @Override 95     public boolean onOptionsItemSelected(MenuItem item) { 96         // Handle action bar item clicks here. The action bar will 97         // automatically handle clicks on the Home/Up button, so long 98         // as you specify a parent activity in AndroidManifest.xml. 99         int id = item.getItemId();100         if (id == R.id.action_settings) {101             return true;102         }103         return super.onOptionsItemSelected(item);104     }105 }

提示:在这里我犯了一个小错误,就是重写onCreateDialog函数时我错写成OnCreateDialog,结果运行程序,点击日期和时间对话框都没有效果显示,所以大家在写代码时要注意这些细节。

最后运行效果:

       

 

      

 

转载于:https://www.cnblogs.com/benchao/p/5073810.html

你可能感兴趣的文章
Python 序列
查看>>
Liferay的架构:缓存(第一部分)
查看>>
初识B/S结构编程技术
查看>>
方法、hadoop源码之JobQueueTaskScheduler-by小雨
查看>>
页面重构总结
查看>>
IO 函数
查看>>
Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
查看>>
JSP页面间传递参数
查看>>
VSNETcodePrint 2005 & SQL ServerPrint 2005
查看>>
java数组基本操作
查看>>
String的indexOf()用于获取字符串中某个子字符串的位置
查看>>
shell 脚本运算符
查看>>
杭电 1711 Number Sequence
查看>>
又一道软通动力7K月薪面试题——银行业务调度系统
查看>>
Matlab画图-非常具体,非常全面
查看>>
浏览器同源策略及其规避方法
查看>>
ReactJS入门
查看>>
linux网站配置文件.htaccess伪静态转换到IIS web.config中
查看>>
CodeForces 1B
查看>>
win10应用UserControl
查看>>