【15】时间、日期和日历
来源:互联网 发布:量子计算机人工智能股 编辑:程序博客网 时间:2024/05/16 04:15
1、TimePickerDialog——时间选择对话框
创建TimePickerDialog时间选择对话框:
a、创建一个类继承DialogFragment;
b、重写onCreateDialog()方法,返回一个TimePickerDialog对象;
c、实现TimePickerDialog的OnTimeSetListener接口来接受一个回调,当用户设置时间。
下面是一个简单的例子,运行效果为:
实现代码:
<span style="color:#000000;">package com.example.practice;import android.app.DialogFragment;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;public class MainActivity_TimePickerDialog extends AppCompatActivity { private TextView tv_time; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_time_picker_fragment); tv_time = (TextView) findViewById(R.id.textView_time); } /** * 设置时间的按钮的单击事件 * * @param view */ public void showTimePickerDialogClick(View view) { DialogFragment timePickerFragment = new TimePickerFragment(); timePickerFragment.show(getFragmentManager(), "timePicker"); } /** * 设置时间值 * * @param hour 小时 * @param minute 分钟 */ public void setTimeValue(int hour, int minute) { tv_time.setText(hour + ":" + minute); }}</span>
布局文件:
<span style="color:#000000;"><?xml version="1.0" encoding="utf-8"?><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=".MainActivity_TimePickerDialog"> <TextView android:id="@+id/textView_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="not time" android:textSize="20sp" /> <Button android:id="@+id/button_setTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView_time" android:onClick="showTimePickerDialogClick" android:text="设置时间" /></RelativeLayout></span>
自定义的TimePickerFragment.java文件:
package com.example.practice;import android.app.Dialog;import android.app.DialogFragment;//注意要继承app包下的(继承v4包下的有错,我试过了!)import android.app.TimePickerDialog;import android.os.Bundle;import android.widget.TimePicker;import java.util.Calendar;/** * 创建该类的目的是来显示时间对话框用的 * Created by Administrator on 2016/2/24 0024. */public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { private int hour, minute; private MainActivity_TimePickerDialog mainActivity; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //通过getActivity方法获取该Fragment所依赖的Activity对象 mainActivity = (MainActivity_TimePickerDialog) getActivity(); //注意:一个Fragment必须依赖于一个Activity才可以存在的。 } /** * 创建时间对话框的事件方法:该方法会在MainActivity的按钮事件中调用show方法时, * 会检查是否已存在Dialog,当不存在时会触发该事件,否则直接显示。 * * @param savedInstanceState * @return */ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Calendar calendar = Calendar.getInstance();//获取当前系统时间 hour = calendar.get(Calendar.HOUR_OF_DAY);//获取小时 minute = calendar.get(Calendar.MINUTE);//获取分钟 //创建时间对话框,参数(上下文,设置时间事件,小时,分钟,是否为24小时) TimePickerDialog dialog = new TimePickerDialog(mainActivity, this, hour, minute, true); return dialog; } /** * 显示完对话框后,自己再重新设置的时间 * (时间对话框中的“完成”按钮的单击事件) * * @param view * @param hourOfDay 小时 * @param minute 分钟 */ @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { hour = hourOfDay; this.minute = minute; //此处把用户设置的时间值设置到界面的TextView组件上 mainActivity.setTimeValue(hour, this.minute); }}
注意:DialogFragment要继承app包下!
2、DatePickerDialog——日期选择对话框
设置思路和TimePickerDialog基本一样~
创建DatePickerDialog日期选择对话框:
a、创建一个类继承DialogFragment;
b、重写onCreateDialog()方法,返回一个DatePickerDialog对象;
c、实现DatePickerDialog的OnDateSetListener接口来接受一个回调,当用户设置日期。
下面是一个简单的例子,运行效果为:
实现代码:
package com.example.practice;import android.app.DialogFragment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.TextView;import static com.example.practice.R.id.textView_date;public class MainActivity_DatePickerDialog extends AppCompatActivity { private TextView tv_date; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_date_picker_dialog); tv_date = (TextView) findViewById(textView_date); } /** * 设置日期的按钮单击事件 * * @param view */ public void showDatePickerDialogClick(View view) { DialogFragment dialogFragment = new DatePickerFragment(); dialogFragment.show(getFragmentManager(), "datePicker"); } /** * 设置日起至 * * @param year 年 * @param month 月 * @param day 日 */ public void setDateValue(int year, int month, int day) { //注意:这边的月份是从0算起的,所以要显示的时候每次都要加1才是正确的月份 tv_date.setText(year + "年" + (month + 1) + "月" + day + "日"); }}
布局文件:
<?xml version="1.0" encoding="utf-8"?><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.example.practice.MainActivity_DatePickerDialog"> <TextView android:id="@+id/textView_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="not date" android:textSize="20sp" /> <Button android:id="@+id/button_setDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView_date" android:onClick="showDatePickerDialogClick" android:text="设置日期" /></RelativeLayout>
自定义的DatePickerFragment.java文件:
package com.example.practice;import android.app.DatePickerDialog;import android.app.Dialog;import android.app.DialogFragment;import android.os.Bundle;import android.widget.DatePicker;import java.util.Calendar;/** * 创建该类的目的是来显示日期对话框用的 * Created by Administrator on 2016/2/24 0024. */public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { private int year, month, day; private MainActivity_DatePickerDialog mainActivity; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //通过getActivity方法获取该Fragment所依赖的Activity对象 mainActivity = (MainActivity_DatePickerDialog) getActivity(); //注意:一个Fragment必须依赖于一个Activity才可以存在的。 } /** * 创建日期对话框的事件方法:该方法会在MainActivity的按钮事件中调用show方法时, * 会检查是否已存在Dialog,当不存在时会触发该事件,否则直接显示。 * * @param savedInstanceState * @return */ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Calendar calendar = Calendar.getInstance();//获取当前系统时间 year = calendar.get(Calendar.YEAR);//获取年 month = calendar.get(Calendar.MONTH);//获取月 day = calendar.get(Calendar.DAY_OF_MONTH);//获取日 //创建日期对话框,参数(上下文,设置日期事件,年,月,日) DatePickerDialog dialog = new DatePickerDialog(mainActivity, this, year, month, day); return dialog; } /** * 显示完对话框后,自己再重新设置的日期 * (日期对话框中的“完成”按钮的单击事件) * * @param view * @param year 年 * @param monthOfYear 月 * @param dayOfMonth 日 */ @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { this.year = year; month = monthOfYear; day = dayOfMonth; mainActivity.setDateValue(this.year, month, day); }}
注意:DialogFragment要继承app包下!
3、TimePicker——时间选择器
我们可以看到,下面是android 5.0的TimePicker的样子:
该组件只有一个属性:
android:timePickerMode:组件外观,同样可选值:spinner和clock(默认)
下面是一个简单的例子,运行效果如下所示:
实现代码:
package com.example.practice;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TimePicker;import android.widget.Toast;public class MainActivity_TimePicker extends AppCompatActivity { private TimePicker timePicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_time_picker); timePicker = (TimePicker) findViewById(R.id.timePicker); timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { Toast.makeText(MainActivity_TimePicker.this, hourOfDay + ":" + minute, Toast.LENGTH_LONG).show(); } }); }}
布局文件:
<?xml version="1.0" encoding="utf-8"?><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=".MainActivity_TimePicker"> <TimePicker android:id="@+id/timePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
4、DatePicker——日期选择器
一样看下android 5.0的DatePicker的样子:
该组件的属性有:
android:calendarTextColor: 日历列表的文本的颜色
android:calendarViewShown:是否显示日历视图
android:datePickerMode:组件外观,可选值:spinner,calendar,前者效果如下,默认效果是后者
android:dayOfWeekBackground:顶部星期几的背景颜色
android:dayOfWeekTextAppearance:顶部星期几的文字颜色
android:endYear:去年(内容)比如2010
android:firstDayOfWeek:设置日历列表以星期几开头
android:headerBackground:整个头部的背景颜色
android:headerDayOfMonthTextAppearance:头部日期字体的颜色
android:headerMonthTextAppearance:头部月份的字体颜色
android:headerYearTextAppearance:头部年的字体颜色
android:maxDate:最大日期显示在这个日历视图mm / dd / yyyy格式
android:maxDate:最小日期显示在这个日历视图mm / dd / yyyy格式
android:spinnersShown:是否显示spinner
android:startYear:设置第一年(内容) ,比如19940年
android:yearListItemTextAppearance:列表的文本出现在列表中
android:yearListSelectorColor:年列表选择的颜色
下面是一个简单的例子,运行效果如下所示:
实现代码:
package com.example.practice;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.DatePicker;import android.widget.Toast;import java.util.Calendar;public class MainActivity_DatePicker extends AppCompatActivity implements DatePicker.OnDateChangedListener { private DatePicker datePicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_date_picker); datePicker = (DatePicker) findViewById(R.id.datePicker); Calendar calendar = Calendar.getInstance();//获取当前系统时间 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); //初始化日期选择器,参数(年,月,日,日期改变的监听事件) datePicker.init(year, month, day, this); } @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Toast.makeText(this, year + "年" + (monthOfYear + 1) + "月" + dayOfMonth + "日", Toast.LENGTH_LONG). show();//注意这边显示的时候要记得月份加一 }}
布局文件:
<?xml version="1.0" encoding="utf-8"?><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.example.practice.MainActivity_DatePicker"> <DatePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/datePicker" /></RelativeLayout>
5、Calendar——日历视图
该组件的属性有:
android:firstDayOfWeek:设置一个星期的第一天
android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式
android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式
android:weekDayTextAppearance:工作日的文本出现在日历标题缩写
下面是一个简单的例子,运行效果如下所示:
实现代码:
package com.example.practice;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.CalendarView;import android.widget.Toast;import java.util.Calendar;public class MainActivity_Calendar extends AppCompatActivity { private CalendarView calendarView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_calendar); calendarView = (CalendarView) findViewById(R.id.calendarView); calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { Toast.makeText(MainActivity_Calendar.this, year + "年" + month + "月" + dayOfMonth + "日", Toast.LENGTH_LONG).show(); } }); }}
布局文件:
<?xml version="1.0" encoding="utf-8"?><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.example.practice.MainActivity_Calendar"> <CalendarView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/calendarView" /></RelativeLayout>
0 0
- 【15】时间、日期和日历
- 日历&时间&日期
- 日期和时间的应用(日历)转载
- 具有日期和时间的日历控件-My97DatePicker
- js 时间 日期 日历控件
- 查看日期和日历
- wdatepicker 日历控件,起始日期和结束日期 ,相差60天,并且在当时时间之前
- iOS:日历和时间
- 日历插件,日期插件,时间插件
- 漂亮 的日期时间控件 日历
- 日历时间日期的用法总结
- 日期及时间问题-日历问题
- iOS日历、日期、时间的计算
- Java 、Android 时间,日历,日期转换
- iOS日历、日期、时间的计算
- iOS日历、日期、时间的计算
- iOS日历、日期、时间的计算
- 一个比较好用的日期和日历插件,可以指定时间范围[百度博客搬家]
- Android 依据变量来获得资源R中的id值
- 重复数据删除:基于相同数据的检测
- vi/vim多行注释和取消注释(转载)
- fft
- TI DSP TMS320C66x学习笔记之内联指令(c6x.h中文注释)(六)
- 【15】时间、日期和日历
- 利用gettimeofday简单测试程序用时
- SQL开发整理
- 安卓项目中的R.java文件丢失如何解决
- 【CSS3】变形--缩放 scale()
- openwrt install ipk 的步骤
- android ndk编写
- SQLITE在ANDROID上的一个BUG
- 欢迎使用CSDN-markdown编辑器