使用DataPicker及TimePicker顯示當前時間

一、OnDateChangedListener和OnTimeChangedListener()
1、當用戶更改了DatePicker裏的年、月、日時,將觸發OnDateChangedListener監聽器的onDateChange()事件
2、當用戶更改了TimePicker裏的時、分時,將觸發OnTimeChangedListener監聽器的onTimeChanged事件

二、OnDateSetListener()和OnTimeSetListener()
1、當用戶更改了DatePickerDialog裏的年、月、日時,將觸發OnDateSet-Listener監聽器的onDateSet()事件
2、當用戶更改了TimePicker裏的時、分時,將觸發OnTimeSetListener監聽器的onTimeSet()事件

三、使用DatePicker實現日曆選擇器

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    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.main);
        //獲取日曆的對象
        cal = Calendar.getInstance();
        //獲取年月日時分秒的信息
        year = cal.get(Calendar.YEAR);
        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(year + "-" + month + "-" + day + "-" + hour + ":" + minute);
        datePicker = (DatePicker) findViewById(R.id.datePicker);
        timePicker = (TimePicker) findViewById(R.id.timePicker);

        //datePicker初始化,第四個參數對應dataPicker的事件監聽器,獲取到當前選擇的日期的結果
        datePicker.init(year, cal.get(Calendar.MONTH), day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
                setTitle(i + "-" + (i1+1) + "-" + i2 );
            }
        });
    }
}

四、使用TimePicker實現時間選擇器

        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker timePicker, int i, int i1) {
                setTitle(i + ":" + i1  );
            }

五、使用DatePickerDialog實現日期選擇對話框

        // DatePickerDialog(上下文,事件監聽器)
        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                setTitle(i + "-" + (i1 + 1) + "-" + i2);
            }
        },year,cal.get(Calendar.MONTH),day).show();

六、使用TimePickerDialog實現時間選擇對話框

        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int i, int i1) {
                setTitle(i + ":" + i1);
            }
        },hour,minute,true).show();

七、注意事項
1、DataPicker對象以init()這個方法來指定DatePicker初始的年、月、日及OnDateChangeListener()的事件;而TimePicker對象則是直接以setOnTimeChangedListener()事件來處理時間改變時程序要做的操作。
2、DatePickerDialog與TimePickerDialog與前面這兩種類型的對象最大的區別在於DatePicker與TimePickerDialog對象則是以彈出Dialog的方式來顯示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章