遇見,控件----Datepicker&TimePicker

很喜歡時光這個詞,覺得它深邃,久遠,充滿浪漫的色彩,時間總是過得很快,流年一瞬,總想留住時間,但那是多麼無知。
每天都在和時間打交道,早起的鬧鐘,deadline,或者你愛上你的那個Ta的紀念……
從初學c語言就試着去搞懂時間的相關算法,到如今Android,遇見DatePicker&TimePicker。
它們僅僅是一個控件而已,和button一樣簡單而飽含使命,Android把它們封裝的很好,甚至可以自己獲取到當前系統時間,而當我們要選擇日期或者時間的話,只需要找到那個時間,我們的邏輯就可以記下時間。
這是Android6.0的DatePicker
這裏寫圖片描述

我們爲了簡潔在xml裏面只放了DatePicker

    <DatePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/datePicker"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

Java文件裏通過對控件的監聽來實現獲取時間

public class MainActivity extends AppCompatActivity {
    DatePicker datePicker;
   Calendar calendar;
    private int year;
    private int month;
    private int day;
    @TargetApi(Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        calendar = Calendar.getInstance();
        // 獲取日曆對象
        year = calendar.get(Calendar.YEAR);
        //獲取到年
        month = calendar.get(Calendar.MONTH) + 1;
        //獲取到月
        day = calendar.get(Calendar.DAY_OF_MONTH);
        //獲取到日
        datePicker= (DatePicker) findViewById(R.id.datePicker);
        datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
            }
        });
//監聽器,設置時間
    }
}

我們通過日曆對象來獲取時間,並通過監聽器來設置時間。

TImePicker使用方法一樣,不過不用設置初始化

<TimePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/timePicker"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

java裏設置監聽器

public class MainActivity extends AppCompatActivity {
  TimePicker timePicker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timePicker= (TimePicker) findViewById(R.id.timePicker);
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                setTitle(hourOfDay + ":" + minute);
            }
        });

    }
}

效果圖
這裏寫圖片描述

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