关掉用户的键盘只需要一行代码
((InputMethodManager)requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(v.getWindowToken(),0);
返回上层需要借助界面导航NavController
Navigation.findNavController(v).navigateUp();
日期控件
安卓自带的无非就是DatePickerDialog和TimePickerDialog,而且说真的,显示效果还不错。
DatePickerDialog datePickerDialog = new DatePickerDialog();
这个构造方法有6个参数,
- 第一个是Context,
- 第二个是所显示控件的样式,一共有五种:
int THEME_TRADITIONAL = 1;
int THEME_HOLO_DARK = 2;
int THEME_HOLO_LIGHT = 3;
int THEME_DEVICE_DEFAULT_DARK = 4;
int THEME_DEVICE_DEFAULT_LIGHT = 5;
- 第三个是监听器DatePickerDialog.OnDateSetListener()
- 最后三个参数是初始日期
整体代码如下
//构建一个日期对话框,该对话框已经集成了日期选择器DatePickerDialog datePickerDialog = new DatePickerDialog(Objects.requireNonNull(getContext()), AlertDialog.THEME_DEVICE_DEFAULT_DARK, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {//点击确定后触发,设置时间taskInsertDate.setText((year) + \".\" + (month + 1 ) + \".\" + dayOfMonth);calendar.set(Calendar.YEAR,year);calendar.set(Calendar.MONTH,month);calendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);}},calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));//把日期对话框显示在界面上datePickerDialog.show();