//千里之行,始于足下。
//这是我第一次写博客,麻烦各位有吐槽就来吧~
//不然就留我一人孤芳自赏了
Ps_1:
//段落注释快捷键:选中段落后按Ctrl+/,会加上全部//,再按一次去掉//;按shift+Ctrl+/,会加上/* */
PS_2:
在Android中这种弹出式的UI一般都不用在布局文件中声明,直接用类就可以搞定
一般要显示他们都要显示地调用show()方法,类似Toast这个类也是一样。
1:监听日期的改变
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Toast.makeText(MainActivity.this,"现在时间:"+year+"-"+(monthOfYear+1)
+"-"+dayOfMonth, 0).show();
//改变标题的日期
tv_date.setText("现在日期:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
}
//----------------------------------//
time_picker.setIs24HourView(true);//设置时间为24小时制
time_picker.setOnTimeChangedListener(new OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
//改变标题的日期
tv_time.setText("现在时间:"+hourOfDay+":"+minute);
}
});
2:java中Calendar类的使用:
//1.获取日历的一个对象
private cal=Calendar.getInstance();
//2.通过该日历对象获取日历的年月份时分秒信息
private year=cal.get(Calendar.YEAR);
private month=cal.get(Calendar.MONTH)+1;
//Ps: 特殊的是Calendar中月份从0开始计数,所以加1得到常规月份
3:TimePickerDailog的用法
new TimePickerDialog(context,callBack,hourOfDay,minute,is24HourView()).show();
//其中的属性参数 hourOfDay,minute 需要自己定义
//也就是说 TimePickerDialog 不会自行初始化时间,参数 is24HourView 为Boolean类型
//3.sdk方法中的时间参数只有month,day会是这种形式monthOfYear,dayOfMonth,因为月数,日数依赖于后者
4:注意事项
1.DatePicker对象以init()这个方法来指定DatePicker初始的年、月、日及OnDateChangdeListener()的事件;
而TimePicker对象则是直接以setOnTimeChangedListener()事件来处理时间改变时程序要做的操作。2.DatePickerDialog和TimePickerDialog和前面的两种对象最大的区别在于
DatePicker和TimePicker是直接是印在屏幕上的,
而DatePickerDialog和TimePickerDialog是以弹出Dialog的方式来显示的。3.TimePickerDialog和TimePicker不同的是,它不用在布局文件中声明,直接通过类就可以new出来
//下面是源代码
package com.example.datatime;
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
public class MainActivity extends Activity {
private TimePicker timePicker;
private DatePicker datePicker;
private Calendar cal;
private int year;
private int month;
private int day;
private int hour;
private int minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取日历的对象
cal = Calendar.getInstance();
// 获取年月日 时分的信息
year = cal.get(Calendar.YEAR);
/* PS:因为month月份是从0开始计数的 所以+1 */
month = cal.get(Calendar.MONTH) + 1;
day = cal.get(Calendar.DAY_OF_MONTH);
hour = cal.get(Calendar.HOUR_OF_DAY);
minute = cal.get(Calendar.MINUTE);
// setTitle:设置标题、使标题上的日期能随着选择的改变而改变
setTitle(year + "-" + month + "-" + day + "-" + hour + ":" + minute);
// 初始化两个组件
timePicker = (TimePicker) findViewById(R.id.timePicker);
datePicker = (DatePicker) findViewById(R.id.datePicker);
// datePicker1初始化的操作
datePicker.init(year, (Calendar.MONTH) + 1, day,
new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
setTitle(year + "-" + (monthOfYear + 1) + "-"
+ dayOfMonth);
}
});
// timePicker1初始化的操作
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
setTitle(hourOfDay + ":" + minute);
}
});
// 用对话框来修改日期
new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
}, year, cal.get(Calendar.MONTH), day).show();
// 用对话框来修改日期
new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
setTitle(hourOfDay + ":" + minute);
}
}, hour, minute, false).show();// true是24小时制,false反之
}
}