Android日历控件PickTime代码实例

 更新时间:2020年09月22日 14:23:21   作者:手撕高达的村长  
这篇文章主要介绍了Android日历控件PickTime代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

最近做项目,需要设置用户的生日,所以做这样一个功能。

开始发觉自带的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;

    }
  }
}

效果如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android边播放边缓存视频框架AndroidVideoCache详解

    Android边播放边缓存视频框架AndroidVideoCache详解

    这篇文章主要为大家介绍了Android边播放边缓存视频框架AndroidVideoCache详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • android动态设置app当前运行语言的方法

    android动态设置app当前运行语言的方法

    下面小编就为大家带来一篇android动态设置app当前运行语言的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Flutter 点击两次退出app的实现示例

    Flutter 点击两次退出app的实现示例

    本文主要介绍了Flutter 点击两次退出app的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Android控件系列之TextView使用介绍

    Android控件系列之TextView使用介绍

    TextView类似一般UI中的Label,TextBlock等控件,只是为了单纯的显示一行或多行文本,本文介绍了Android中文本控件TextView的用法和常用属性的用法
    2012-11-11
  • Android获取分享应用列表详解及实例

    Android获取分享应用列表详解及实例

    这篇文章主要介绍了Android获取分享应用列表详解及实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • NestScrollView嵌套RecyclerView实现淘宝首页滑动效果

    NestScrollView嵌套RecyclerView实现淘宝首页滑动效果

    这篇文章主要介绍了NestScrollView嵌套RecyclerView实现淘宝首页滑动效果,主要实现淘宝首页嵌套滑动,中间tab吸顶效果,以及介绍NestScrollView嵌套RecyclerView处理滑动冲突的方法,需要的朋友可以参考下
    2021-12-12
  • JSON解析和XML解析区别对比

    JSON解析和XML解析区别对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大。这篇文章主要介绍了JSON解析和XML解析区别对比,需要的朋友可以参考下
    2016-10-10
  • Android网格视图GridView的使用

    Android网格视图GridView的使用

    网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字、图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现
    2016-01-01
  • Android 一个日历控件的实现代码

    Android 一个日历控件的实现代码

    本篇文章主要介绍了Android 一个日历控件的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Android巧用DecorView实现对话框功能

    Android巧用DecorView实现对话框功能

    本篇文章主要介绍了Android巧用DecorView实现对话框功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论