Android ApiDemos 学习——时间日期控件

来源:互联网 发布:js判断是不是质数for 编辑:程序博客网 时间:2024/05/16 12:42

时间日期进程会用到平时的开发中,android内置了两种可交互的时间日期控件,一种是对话框形式的,一种是内嵌式的。

分别使用了android的类TimePickerDialog、DatePickerDialog以及TimePicker,其中TimePicker需要在layout中进行设置


对话框形式的时间控件

public class DateDialog extends Activity {    // where we display the selected date and time    private TextView mDateDisplay;    // date and time    private int mYear;    private int mMonth;    private int mDay;    private int mHour;    private int mMinute;    static final int TIME_DIALOG_ID = 0;    static final int DATE_DIALOG_ID = 1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.date_widgets_example_1);        mDateDisplay = (TextView) findViewById(R.id.dateDisplay);        Button pickDate = (Button) findViewById(R.id.pickDate);        pickDate.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {                showDialog(DATE_DIALOG_ID);            }        });        Button pickTime = (Button) findViewById(R.id.pickTime);        pickTime.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {                showDialog(TIME_DIALOG_ID);            }        });        final Calendar c = Calendar.getInstance();        mYear = c.get(Calendar.YEAR);        mMonth = c.get(Calendar.MONTH);        mDay = c.get(Calendar.DAY_OF_MONTH);        mHour = c.get(Calendar.HOUR_OF_DAY);        mMinute = c.get(Calendar.MINUTE);        updateDisplay();    }    @Override    protected Dialog onCreateDialog(int id) {        switch (id) {            case TIME_DIALOG_ID:                return new TimePickerDialog(this,                        mTimeSetListener, mHour, mMinute, false);            case DATE_DIALOG_ID:                return new DatePickerDialog(this,                            mDateSetListener,                            mYear, mMonth, mDay);        }        return null;    }    @Override    protected void onPrepareDialog(int id, Dialog dialog) {        switch (id) {            case TIME_DIALOG_ID:                ((TimePickerDialog) dialog).updateTime(mHour, mMinute);                break;            case DATE_DIALOG_ID:                ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);                break;        }    }        private void updateDisplay() {        mDateDisplay.setText(            new StringBuilder()                    // Month is 0 based so add 1                    .append(mMonth + 1).append("-")                    .append(mDay).append("-")                    .append(mYear).append(" ")                    .append(pad(mHour)).append(":")                    .append(pad(mMinute)));    }    private DatePickerDialog.OnDateSetListener mDateSetListener =            new DatePickerDialog.OnDateSetListener() {                public void onDateSet(DatePicker view, int year, int monthOfYear,                        int dayOfMonth) {                    mYear = year;                    mMonth = monthOfYear;                    mDay = dayOfMonth;                    updateDisplay();                }            };    private TimePickerDialog.OnTimeSetListener mTimeSetListener =            new TimePickerDialog.OnTimeSetListener() {                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                    mHour = hourOfDay;                    mMinute = minute;                    updateDisplay();                }            };    private static String pad(int c) {        if (c >= 10)            return String.valueOf(c);        else            return "0" + String.valueOf(c);    }}

内嵌式时间控件

public class DateIncline extends Activity {    // where we display the selected date and time    private TextView mTimeDisplay;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.date_widgets_example_2);        TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);        timePicker.setCurrentHour(12);        timePicker.setCurrentMinute(15);        mTimeDisplay = (TextView) findViewById(R.id.dateDisplay);        updateDisplay(12, 15);        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {                updateDisplay(hourOfDay, minute);            }        });    }    private void updateDisplay(int hourOfDay, int minute) {        mTimeDisplay.setText(                    new StringBuilder()                    .append(pad(hourOfDay)).append(":")                    .append(pad(minute)));    }    private static String pad(int c) {        if (c >= 10)            return String.valueOf(c);        else            return "0" + String.valueOf(c);    }}


3 0
原创粉丝点击