Android ApiDemos 學習——時間日期控制項

來源:互聯網
上載者:User

標籤:android   apidemo   

時間日期進程會用到平時的開發中,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);    }}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.