本例子通过一个按钮点击弹出一个DatePickerDialog,用户可以改变日期,然后点击确定后将新日期以字符串形式设置到按钮上。
主要是用了DatePickerDialog这个知识点。
new DatePickerDialog(this, DatePickerDialog.THEME_DEVICE_DEFAULT_LIGHT, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
btnChange.setText(String.format("%d年%d月%d日", year,monthOfYear+1,dayOfMonth));
}
}, 2015, 7, 19).show();
-
Parameters:
- context The context the dialog is to run in. 上下文
- theme the theme to apply to this dialog 主题(可以不要这个参数,则使用默认的主题)
- callBack How the parent is notified that the date is set. 设置好新日期后的回调函数
- year The initial year of the dialog. 初始的年数值
-
monthOfYear The initial month of the dialog. 初始的月份
dayOfMonth The initial day of the dialog. 初始的天
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:onClick="changeDate"
android:text="00:00:00" />
</LinearLayout>
AtyDatePicker.java文件:
package com.fxj.composit;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import com.fxj.compractice.R;
public class AtyDatePicker extends Activity {
private Button btnChange;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.datepicker_layout);
btnChange=(Button) findViewById(R.id.btn_date);
}
//按钮监听事件
public void changeDate(View view) {
/*不使用主题的对话框,默认的系统主题
* new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
btnChange.setText(String.format("%d年%d月%d日", year,monthOfYear,dayOfMonth));
}
}, 2015, 7, 19).show();*/
//弹出DatePickerDialog
new DatePickerDialog(this, DatePickerDialog.THEME_DEVICE_DEFAULT_LIGHT, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
btnChange.setText(String.format("%d年%d月%d日", year,monthOfYear+1,dayOfMonth));
}
}, 2015, 7, 19).show();
}
}
运行效果:
结束。