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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
JUC系列学习工具类CountDownLatch详解
2023-10-01 12:19:23
![](https://img.aspxhome.com/file/2023/8/66988_0s.png)
Java中equalsIgnoreCase()方法的使用
2022-07-28 15:13:45
SpringBoot整合activemq的案例代码
2023-11-06 18:41:37
![](https://img.aspxhome.com/file/2023/9/58589_0s.png)
Unity3D应用之时钟与钟表小组件的使用教程
2023-05-15 04:43:35
![](https://img.aspxhome.com/file/2023/1/91361_0s.png)
Java初学者常问的问题(推荐)
2023-05-29 05:41:51
Spring bean为什么需要依赖注入
2022-01-24 11:07:21
![](https://img.aspxhome.com/file/2023/6/66186_0s.png)
Java 数据结构与算法系列精讲之字符串暴力匹配
2021-10-06 05:43:27
![](https://img.aspxhome.com/file/2023/5/65305_0s.jpg)
java中LinkedList使用迭代器优化移除批量元素原理
2021-12-05 11:26:07
![](https://img.aspxhome.com/file/2023/0/66180_0s.png)
基于@RestControllerAdvice与@ControllerAdvice的区别说明
2022-06-24 21:00:36
![](https://img.aspxhome.com/file/2023/6/96266_0s.png)
快速了解Maven
2022-10-22 20:18:33
![](https://img.aspxhome.com/file/2023/9/68539_0s.png)
IntelliJ IDEA2020.1版本更新pom文件自动导包的方法
2023-01-13 17:44:01
![](https://img.aspxhome.com/file/2023/2/101972_0s.jpg)
Spring组件开发模式支持SPEL表达式
2023-09-05 11:53:31
Android EditText限制输入字数的方法
2021-11-20 18:39:39
C#获取本地IP的四种方式示例详解
2023-04-16 00:52:50
详谈Enumeration接口和Iterator接口的区别
2023-05-08 02:25:23
Spring boot中@Conditional和spring boot的自动配置实例详解
2023-06-20 09:36:14
![](https://img.aspxhome.com/file/2023/9/61539_0s.png)
简单阐述一下Java集合的概要
2023-08-23 19:49:45
![](https://img.aspxhome.com/file/2023/0/58300_0s.png)
Java文件读写IO/NIO及性能比较详细代码及总结
2021-11-28 12:56:30
java使用淘宝API读写json实现手机归属地查询功能代码
2021-05-31 03:27:38
Java实战入门之双色球彩票小游戏
2023-05-12 04:07:13
![](https://img.aspxhome.com/file/2023/6/63486_0s.png)