很喜歡時光這個詞,覺得它深邃,久遠,充滿浪漫的色彩,時間總是過得很快,流年一瞬,總想留住時間,但那是多麼無知。
每天都在和時間打交道,早起的鬧鐘,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);
}
});
}
}
效果圖