AndroidUI基础之 TimePickerDialog与 Timpicker 等简单的使用
2016-01-14 11:07
591 查看
在Android程序中,我们有时候需要设置时间,这时需要使用TimerPicker来设置时间,使用DatePicker来设置日期下面分别介绍具体的使用方法。
一:TimerPicker 的使用
1:效果图:
首先声明一个类 ,用来显示时间对话框并且该类继承DialogFragement 并实现TimePickerDialog.OnTimeSetListener(对话框中完成按钮的事件监听器)接口。
在public Dialog onCreateDialog(Bundle savedInstanceState) 方法中,完成日期的获取,以及对话框的绘制,最后重写 onTimeSet(TimePicker view, int hourOfDay, int minute) 该方法用于保存修改后的时间。
完整代码如下:
public class TimePickerFragement extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
int hour;
int minute;
private MainActivity mainActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 通过getActivity方法获取该Fragement所依赖的Activity对象
mainActivity = (MainActivity) getActivity();
}
@Override
// 事件方法当显示 Dialog 时会调用该方法 (返回一个Dialog)
// 创建对话框,该方法会在MainActivity的按钮中调用show方法时,会检查是否已经存在Dialog,当不存在时会直接创建,否则直接显示。
public Dialog onCreateDialog(Bundle savedInstanceState) {
// 获取系统当前的事时间
Calendar c = Calendar.getInstance();
hour =c.get(Calendar.HOUR_OF_DAY);
minute=c.get(Calendar.MINUTE);
// 第一个参数为上下文,OnTimeSetListener callBack , int hour,int minute, 是否设置为24小时制
TimePickerDialog dialog = new TimePickerDialog(getActivity(),this, hour,minute,true);
return dialog;
}
// 用户自己设置时间(点击完成后设置时间)
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
this.hour=hourOfDay;
this.minute = minute;
// 把用户设置的时间显示到组件上
mainActivity.setTimeValue (hour, minute);
}
}
布局文件中声明一个TextView 与一个按钮,点击按钮弹出对话框,开始设置时间。
在MainActivity中实例化TimePickerFragement ,调用show()显示对话框 。
public class MainActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.text_time);
}
public void setTimeValue(int hour, int minute) {
tv.setText(hour + ":" + minute);
}
public void set_time(View view) {
TimePickerFragement fragment = new TimePickerFragement();
fragment.show(getFragmentManager(), "Timepicker");
}
}
DatePicker的使用
效果如下:
使用与TimePicker 基本相似,首先也得尚明一个类继承自DialogFragement,并且实现DatePickerDialog.OnDateSetListener ,在public Dialog onCreateDialog(Bundle savedInstanceState) 方法中,完成日期的获取,以及对话框的绘制,最后重写 onDateSet(TimePicker view, int hourOfDay, int minute) 该方法用于保存修改后的日期。
具体代码如下:
public class DatePickerFragement extends DialogFragment implements DatePickerDialog.OnDateSetListener{
private Main2Activity main2Activity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main2Activity = (Main2Activity) getActivity();
}
// 创建日期对话框
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month =c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog pickerDialog = new DatePickerDialog(getActivity(),this,year,month,day);
return pickerDialog;
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
main2Activity.set_dateValue(year,monthOfYear,dayOfMonth);
}
}
布局文件与上面相同 声明一个按钮(加载显示对话框)与一个TextView(显示修改后的日期),
在MianActivty 中代码如下:
public class Main2Activity extends AppCompatActivity {
private TextView tv ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mian2);
tv = (TextView)findViewById (R.id.textView_date);
}
public void set_dateValue (int year , int month , int day){
tv.setText(year+"年"+(month+1)+"月"+day+"日");
}
/*
设置日期的时间按钮
*/
public void setDate_click (View view){
DatePickerFragement pickerFragement = new DatePickerFragement();
pickerFragement.show(getFragmentManager(),"dataPicker");
}
}
在android中还提供了组件的方式来加载时间与日期 ,分别为TimePicker 与DatePicker 使用比较简单如下:
TimePicker 的使用:
效果如下:
布局文件中
使用TimePicker组件,并且添加一个按钮当点击按钮的时候显示,滚动框上当前的时间并使用Toast打印出来。
如下:
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timePicker"
android:layout_alignParentStart="true" />
在MainActivity中声明组件通过响应的方法可以获取时间
private TimePicker picker;
picker=(TimePicker) findViewById(R.id.timePicker);
public void save_click (View view){
int hour=picker.getCurrentHour();
int minute=picker.getCurrentMinute();
Toast.makeText(this,hour+":"+minute,Toast.LENGTH_SHORT).show();
}
DatePicker 的使用
效果图如下:
DatePicker
在布局文件中,使用DatePicker组件,并添加一个按钮用于显示当前滚动框与目录上的时间。
在MainActivity中声明组件通过响应的方法可以获取时间并且打印输出。
public void save_click (View view){
int hour=picker.getCurrentHour();
int minute=picker.getCurrentMinute();
Toast.makeText(this,hour+":"+minute,Toast.LENGTH_SHORT).show();
}
一:TimerPicker 的使用
1:效果图:
首先声明一个类 ,用来显示时间对话框并且该类继承DialogFragement 并实现TimePickerDialog.OnTimeSetListener(对话框中完成按钮的事件监听器)接口。
在public Dialog onCreateDialog(Bundle savedInstanceState) 方法中,完成日期的获取,以及对话框的绘制,最后重写 onTimeSet(TimePicker view, int hourOfDay, int minute) 该方法用于保存修改后的时间。
完整代码如下:
public class TimePickerFragement extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
int hour;
int minute;
private MainActivity mainActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 通过getActivity方法获取该Fragement所依赖的Activity对象
mainActivity = (MainActivity) getActivity();
}
@Override
// 事件方法当显示 Dialog 时会调用该方法 (返回一个Dialog)
// 创建对话框,该方法会在MainActivity的按钮中调用show方法时,会检查是否已经存在Dialog,当不存在时会直接创建,否则直接显示。
public Dialog onCreateDialog(Bundle savedInstanceState) {
// 获取系统当前的事时间
Calendar c = Calendar.getInstance();
hour =c.get(Calendar.HOUR_OF_DAY);
minute=c.get(Calendar.MINUTE);
// 第一个参数为上下文,OnTimeSetListener callBack , int hour,int minute, 是否设置为24小时制
TimePickerDialog dialog = new TimePickerDialog(getActivity(),this, hour,minute,true);
return dialog;
}
// 用户自己设置时间(点击完成后设置时间)
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
this.hour=hourOfDay;
this.minute = minute;
// 把用户设置的时间显示到组件上
mainActivity.setTimeValue (hour, minute);
}
}
布局文件中声明一个TextView 与一个按钮,点击按钮弹出对话框,开始设置时间。
在MainActivity中实例化TimePickerFragement ,调用show()显示对话框 。
public class MainActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.text_time);
}
public void setTimeValue(int hour, int minute) {
tv.setText(hour + ":" + minute);
}
public void set_time(View view) {
TimePickerFragement fragment = new TimePickerFragement();
fragment.show(getFragmentManager(), "Timepicker");
}
}
DatePicker的使用
效果如下:
使用与TimePicker 基本相似,首先也得尚明一个类继承自DialogFragement,并且实现DatePickerDialog.OnDateSetListener ,在public Dialog onCreateDialog(Bundle savedInstanceState) 方法中,完成日期的获取,以及对话框的绘制,最后重写 onDateSet(TimePicker view, int hourOfDay, int minute) 该方法用于保存修改后的日期。
具体代码如下:
public class DatePickerFragement extends DialogFragment implements DatePickerDialog.OnDateSetListener{
private Main2Activity main2Activity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main2Activity = (Main2Activity) getActivity();
}
// 创建日期对话框
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month =c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog pickerDialog = new DatePickerDialog(getActivity(),this,year,month,day);
return pickerDialog;
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
main2Activity.set_dateValue(year,monthOfYear,dayOfMonth);
}
}
布局文件与上面相同 声明一个按钮(加载显示对话框)与一个TextView(显示修改后的日期),
在MianActivty 中代码如下:
public class Main2Activity extends AppCompatActivity {
private TextView tv ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mian2);
tv = (TextView)findViewById (R.id.textView_date);
}
public void set_dateValue (int year , int month , int day){
tv.setText(year+"年"+(month+1)+"月"+day+"日");
}
/*
设置日期的时间按钮
*/
public void setDate_click (View view){
DatePickerFragement pickerFragement = new DatePickerFragement();
pickerFragement.show(getFragmentManager(),"dataPicker");
}
}
在android中还提供了组件的方式来加载时间与日期 ,分别为TimePicker 与DatePicker 使用比较简单如下:
TimePicker 的使用:
效果如下:
布局文件中
使用TimePicker组件,并且添加一个按钮当点击按钮的时候显示,滚动框上当前的时间并使用Toast打印出来。
如下:
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timePicker"
android:layout_alignParentStart="true" />
在MainActivity中声明组件通过响应的方法可以获取时间
private TimePicker picker;
picker=(TimePicker) findViewById(R.id.timePicker);
public void save_click (View view){
int hour=picker.getCurrentHour();
int minute=picker.getCurrentMinute();
Toast.makeText(this,hour+":"+minute,Toast.LENGTH_SHORT).show();
}
DatePicker 的使用
效果图如下:
DatePicker
在布局文件中,使用DatePicker组件,并添加一个按钮用于显示当前滚动框与目录上的时间。
在MainActivity中声明组件通过响应的方法可以获取时间并且打印输出。
public void save_click (View view){
int hour=picker.getCurrentHour();
int minute=picker.getCurrentMinute();
Toast.makeText(this,hour+":"+minute,Toast.LENGTH_SHORT).show();
}
相关文章推荐
- 【SQL 编程你也行】SQL Server 2014新功能之动态视图:sys.dm_exec_query_profiles
- clouderamagner 中hue 工作流调用sqoop1 问题处理
- PHP中require和include的区别
- Android中UI主线程与子线程
- iOS edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets属性详解
- servlet request.getParamter 有时获取参数为null
- EasyUI之Combobox 数据加载完之后执行
- UI组件之ImageView及其子类(二)ImageButton ,ZoomButton
- 关于android stuidio的基本设置
- leetcode -- Range Sum Query - Mutable -- 重点,有线段树
- switch(value)设置 为int 型变量
- PowerBuilder命令行编译详解[1]
- 重写UIButton的图片、title Frame
- JAVA可阻塞队列-ArrayBlockingQueue子类BlockingQueue的应用,使用它来实现子线程打印10次,主线程打印100次,如此反复
- easyui datebox只显示年月
- 《iOS Human Interface Guidelines》——iCloud
- UGUI中的InputField下的placeholder的作用?
- GUID
- JAVA可阻塞队列-ArrayBlockingQueue
- UITextField使用时文字向下偏移问题