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日历控件PickTime代码实例

android:datePickerMode="spinner"

这个属性会切换为日历选择状态。

Android日历控件PickTime代码实例

还容易出现英文这种鬼东西,于是不在研究,直接找插件去。

于是发现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;

}
 }
}

效果如图:

Android日历控件PickTime代码实例

来源:https://www.cnblogs.com/sunxun/p/9570208.html

标签:Android,日历,控件,Pick,Time
0
投稿

猜你喜欢

  • JUC系列学习工具类CountDownLatch详解

    2023-10-01 12:19:23
  • Java中equalsIgnoreCase()方法的使用

    2022-07-28 15:13:45
  • SpringBoot整合activemq的案例代码

    2023-11-06 18:41:37
  • Unity3D应用之时钟与钟表小组件的使用教程

    2023-05-15 04:43:35
  • Java初学者常问的问题(推荐)

    2023-05-29 05:41:51
  • Spring bean为什么需要依赖注入

    2022-01-24 11:07:21
  • Java 数据结构与算法系列精讲之字符串暴力匹配

    2021-10-06 05:43:27
  • java中LinkedList使用迭代器优化移除批量元素原理

    2021-12-05 11:26:07
  • 基于@RestControllerAdvice与@ControllerAdvice的区别说明

    2022-06-24 21:00:36
  • 快速了解Maven

    2022-10-22 20:18:33
  • IntelliJ IDEA2020.1版本更新pom文件自动导包的方法

    2023-01-13 17:44:01
  • 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
  • 简单阐述一下Java集合的概要

    2023-08-23 19:49:45
  • 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
  • asp之家 软件编程 m.aspxhome.com