首先在界面布局chose_date.xml中的代码,此界面只有这一个控件,一般都是别的界面的点击事件跳转到此界面
<DatePicker
android:id="@+id/datePicker2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:headerBackground="@color/colorPrimaryDark" />
Date.java中的使用方法
public class Date implements DatePicker.OnDateChangedListener {
private DatePicker datePicker;
private AlertDialog ad;
private String dateTime;
private String initDate;
private Activity activity;
public Date(Activity activity, String initDate) {
this.activity = activity;
this.initDate = initDate;
this.dateTime=initDate;
}
private void init(DatePicker datePicker){
Calendar calendar = Calendar.getInstance();
if (!(null == initDate || "".equals(initDate))) {
calendar = this.getCalendar(initDate);
} else {
initDate = calendar.get(Calendar.YEAR) + "年"
+ calendar.get(Calendar.MONTH) + "月"
+ calendar.get(Calendar.DAY_OF_MONTH) + "日 ";
}
datePicker.init(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH)-1,
calendar.get(Calendar.DAY_OF_MONTH), this);
}
//将字符串YYYY-MM-DD变成年月日
private Calendar getCalendar(String initDate) {
Calendar calendar = Calendar.getInstance();
String s[]=initDate.split("-");
calendar.set(Integer.valueOf(s[0]),Integer.valueOf(s[1]),Integer.valueOf(s[2]));
return calendar;
}
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(),
datePicker.getDayOfMonth());
dateTime = ProduceDao.format.format(calendar.getTime());
ad.setTitle(dateTime);
}
public AlertDialog datePicKDialog(final TextView inputDate) {
LinearLayout dateTimeLayout = (LinearLayout) activity
.getLayoutInflater().inflate(R.layout.chose_date, null);
datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datePicker2);
init(datePicker);
ad = new AlertDialog.Builder(activity)
.setTitle(initDate)
.setView(dateTimeLayout)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
inputDate.setText(dateTime);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
inputDate.setText(initDate);
}
}).show();
return ad;
}
}
shangshiTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Date(EditProduce.this,String.valueOf(shangshiTime.getText()))
.datePicKDialog(shangshiTime);