时间:2021-05-20
最近做项目,需要设置用户的生日,所以做这样一个功能。
开始发觉自带的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; } }}效果如图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Android日历控件的实现代码,供大家参考,具体内容如下1、效果图:2、弹窗Dialog:SelectDateDialog:publicc
这个日历控件类似于园子用的日历,如下图:这种日历控件实现起来不难,下面简单分析下我的思路:首先,是该控件的可配置项:复制代码代码如下:...settings:{
本文介绍了iOS简约日历控件EBCalendarView的实现代码,分享给大家,具体如下:EBCalendarView日历控件,调用简单,代码简洁。github
复制代码代码如下:/***本日历选择控件由tiannet根据前人经验完善而得。大部分代码来自meizz的日历控件。*tiannet添加了时间选择功能、s
Android代码写控件代替XML简单实例简单的一个Button控件的练习。实现代码:Buttonbtn=newButton(HandlerToActivity