很喜欢时光这个词,觉得它深邃,久远,充满浪漫的色彩,时间总是过得很快,流年一瞬,总想留住时间,但那是多么无知。
每天都在和时间打交道,早起的闹钟,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);
}
});
}
}
效果图