Android日历控件PickTime代码实例
作者:手撕高达的村长 时间:2021-09-28 17:22:57
最近做项目,需要设置用户的生日,所以做这样一个功能。
开始发觉自带的DatePicker 很是不好用。
上代码:
<DatePicker
android:id="@+id/dpPicker"
android:datePickerMode="spinner"
android:calendarViewShown="false"
android:layout_marginTop="150dp"
android:spinnersShown="true"
android:yearListSelectorColor = "@color/colorPrimaryDark"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
初始化代码:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
Calendar calendar = Calendar.getInstance(Locale.CHINA);
datePicker = (DatePicker) findViewById(R.id.dpPicker);
int year=calendar.get(Calendar.YEAR);
int monthOfYear=calendar.get(Calendar.MONTH);
int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// 获取一个日历对象,并初始化为当前选中的时间
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat(
"yyyy年MM月dd日 HH:mm");
Toast.makeText(MainActivity.this,
format.format(calendar.getTime()), Toast.LENGTH_SHORT)
.show();
}
});
结果效果如此:
android:datePickerMode="spinner"
这个属性会切换为日历选择状态。
还容易出现英文这种鬼东西,于是不在研究,直接找插件去。
于是发现PickTime 很好用的,来说下使用方法:
//日期选择控件
implementation 'com.github.codbking:PickTime:v1.0.1'
//item控件
implementation 'com.github.codbking:AllItemView:v1.0.0'
然后是调用代码:
package controller.hzl.com.timetest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import com.codbking.view.ItemView;
import com.codbking.widget.DatePickDialog;
import com.codbking.widget.bean.DateType;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private DatePicker datePicker;
private TimePicker timePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ItemView xx = findViewById(R.id.item4);
xx.setOnClickListener(this);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
Calendar calendar = Calendar.getInstance(Locale.CHINA);
datePicker = (DatePicker) findViewById(R.id.dpPicker);
int year=calendar.get(Calendar.YEAR);
int monthOfYear=calendar.get(Calendar.MONTH);
int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// 获取一个日历对象,并初始化为当前选中的时间
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat(
"yyyy年MM月dd日 HH:mm");
Toast.makeText(MainActivity.this,
format.format(calendar.getTime()), Toast.LENGTH_SHORT)
.show();
}
});
}
private void showDatePickDialog(DateType type) {
DatePickDialog dialog = new DatePickDialog(this);
//设置上下年分限制
dialog.setYearLimt(5);
//设置标题
dialog.setTitle("选择时间");
//设置类型
dialog.setType(type);
//设置消息体的显示格式,日期格式
dialog.setMessageFormat("yyyy-MM-dd");
//设置选择回调
dialog.setOnChangeLisener(null);
//设置点击确定按钮回调
dialog.setOnSureLisener(null);
dialog.show();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.item4:
showDatePickDialog(DateType.TYPE_YMD);
break;
}
}
}
效果如图:
来源:https://www.cnblogs.com/sunxun/p/9570208.html
标签:Android,日历,控件,Pick,Time
0
投稿
猜你喜欢
解决RestTemplate 请求url中包含百分号 会被转义成25的问题
2022-11-01 22:59:51
Java使用JDBC实现Oracle用户认证的方法详解
2022-10-06 08:59:36
详解Java获取环境变量及系统属性的方法
2021-08-23 16:58:03
为什么Java开发需要配置环境变量
2023-08-13 13:11:03
Android 7.0中拍照和图片裁剪适配的问题详解
2022-09-27 07:29:57
C#自定义日志记录
2021-06-11 23:44:47
MyBatis中动态sql的实现方法示例
2022-08-26 06:02:31
分析Java中的类加载问题
2023-09-03 19:37:04
ImageSwitcher图像切换器的使用实例
2022-10-29 13:16:02
Spring的事务管理你了解吗
2023-02-05 19:44:16
Java集合框架之Stack Queue Deque使用详解刨析
2022-06-11 06:10:19
C#设计模式之职责链模式示例详解
2023-11-08 05:26:38
Java用数组实现循环队列的示例
2022-06-26 15:09:48
Java中的javaBean、vo、entity、domain和pojo
2023-03-30 21:41:20
Java中的this、package、import示例详解
2021-06-10 10:37:50
Android GestureDetector手势滑动使用实例讲解
2022-01-18 01:34:12
Java设计模式之模版方法模式简介
2023-07-16 14:58:32
C#实现图片切割的方法
2022-02-25 22:17:56
JAVA像SQL一样对List对象集合进行排序
2023-11-01 12:36:24
Android开源框架的SlidingFragment的使用示例
2021-06-18 09:37:31