日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 自定义年月日日期选择器、时分时间选择器

發布時間:2023/12/10 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 自定义年月日日期选择器、时分时间选择器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現效果:

日期選擇器? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?時間選擇器

? ? ? ? ? ? ? ?

?

?

實現方法:

?

1、自定義選擇器dialog

public class DatePickDialog extends Dialog implements OnChangeLisener {private TextView titleTv;private FrameLayout wheelLayout;private TextView cancel;private TextView sure;private TextView messgeTv;private TextView timete;private String title;private String format;private DateType type = DateType.TYPE_ALL;//開始時間private Date startDate = new Date();//年分限制,默認上下5年private int yearLimt = 5;private OnChangeLisener onChangeLisener;private OnSureLisener onSureLisener;private DatePicker mDatePicker;//設置標題public void setTitle(String title) {this.title = title;}//設置模式public void setType(DateType type) {this.type = type;}//設置選擇日期顯示格式,設置顯示message,不設置不顯示messagepublic void setMessageFormat(String format) {this.format = format;}//設置開始時間public void setStartDate(Date startDate) {this.startDate = startDate;}//設置年份限制,上下年份public void setYearLimt(int yearLimt) {this.yearLimt = yearLimt;}//設置選擇回調public void setOnChangeLisener(OnChangeLisener onChangeLisener) {this.onChangeLisener = onChangeLisener;}//設置點擊確定按鈕,回調public void setOnSureLisener(OnSureLisener onSureLisener) {this.onSureLisener = onSureLisener;}public DatePickDialog(Context context) {super(context, R.style.dialog_style);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.cbk_dialog_pick_time);initView();initParas();}private DatePicker getDatePicker() {DatePicker picker = new DatePicker(getContext(), type);picker.setStartDate(startDate);picker.setYearLimt(yearLimt);picker.setOnChangeLisener(this);picker.init();return picker;}private void initView() {this.sure = (TextView) findViewById(R.id.sure);this.cancel = (TextView) findViewById(R.id.cancel);this.wheelLayout = (FrameLayout) findViewById(R.id.wheelLayout);this.titleTv = (TextView) findViewById(R.id.title);this.timete = (TextView) findViewById(R.id.timete);messgeTv = (TextView) findViewById(R.id.message);mDatePicker = getDatePicker();this.wheelLayout.addView(mDatePicker);//setValuethis.titleTv.setText(title);this.timete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {setType(DateType.TYPE_HM);wheelLayout.removeAllViews();initView();}});this.titleTv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {setType(DateType.TYPE_YMD);wheelLayout.removeAllViews();initView();}});this.cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dismiss();}});this.sure.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String endtime = messgeTv.getText().toString();myLisener.onChanged(endtime);dismiss();if (onSureLisener != null) {onSureLisener.onSure(mDatePicker.getSelectDate());}}});}private MyLisener myLisener;public void setMyLisener(MyLisener onChangeLisener) {this.myLisener = onChangeLisener;}private void initParas() {WindowManager.LayoutParams params = getWindow().getAttributes();params.gravity = Gravity.BOTTOM;params.width = DateUtils.getScreenWidth(getContext());getWindow().setAttributes(params);}@Overridepublic void onChanged(Date date) {if (onChangeLisener != null) {onChangeLisener.onChanged(date);}if (!TextUtils.isEmpty(format)) {String messge = "";try {messge = new SimpleDateFormat(format).format(date);} catch (Exception e) {e.printStackTrace();}messgeTv.setText(messge);}}}

2、activity調用

private OnChangeLisener onChangeLisener; private MyLisener myLisener; onChangeLisener =new OnChangeLisener() {@Overridepublic void onChanged(Date date) {String messge = "";try { // messge = new SimpleDateFormat("HH:mm").format(date);messge = new SimpleDateFormat("yyyy-MM-dd").format(date);} catch (Exception e) {e.printStackTrace();}}};myLisener = new MyLisener() {@Overridepublic void onChanged(String date) {Log.i("lgq","...回來了...."+date);}};

3、起調方法

private void showDatePickDialog(DateType type) {DatePickDialog dialog = new DatePickDialog(this);//設置上下年分限制dialog.setYearLimt(5);//設置標題dialog.setTitle("選擇時間");//設置類型dialog.setType(type);//設置消息體的顯示格式,日期格式dialog.setMessageFormat("yyyy-MM-dd HH:mm");//設置選擇回調dialog.setOnChangeLisener(onChangeLisener);dialog.setMyLisener(myLisener);//設置點擊確定按鈕回調dialog.setOnSureLisener(null);dialog.show(); } showDatePickDialog(DateType.TYPE_YMD); // showDatePickDialog(DateType.TYPE_HM);

?

demo鏈接:https://download.csdn.net/download/meixi_android/11434566

總結

以上是生活随笔為你收集整理的Android 自定义年月日日期选择器、时分时间选择器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。