当前位置: 首页 > 编程笔记 >

Android日历控件PickTime代码实例

督德泽
2023-03-14
本文向大家介绍Android日历控件PickTime代码实例,包括了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 分享控件的实现代码,包括了Android 分享控件的实现代码的使用技巧和注意事项,需要的朋友参考一下 如今很多应用都提供向外分享信息的功能,在进行分享操作时,一般是从屏幕底部弹出所有具备分享功能的应用列表,再由用户进行选择 现在我就来模仿实现这种效果,不仅使分享控件从屏幕底部弹出,还要使分享控件能够上下拖动,这就需要使用到 design 包提供的 BottomShee

  • 本文向大家介绍Android RatingBar星星评分控件实例代码,包括了Android RatingBar星星评分控件实例代码的使用技巧和注意事项,需要的朋友参考一下 效果图: 直接上代码: xml文件: Java代码: 以上所述是小编给大家介绍的Android RatingBar 评分控件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网

  • 一个适用于 Android 的日期选择控件 运行截图 DateType TYPE_ALL--年、月、日、星期、时、分 TYPE_YMDHM--年、月、日、时、分 TYPE_YMDH--年、月、日、时 TYPE_YMD--年、月、日 TYPE_HM--时、分

  • 本文向大家介绍iOS 获取公历、农历日期的年月日的实例代码,包括了iOS 获取公历、农历日期的年月日的实例代码的使用技巧和注意事项,需要的朋友参考一下 介绍三种方法获取 Date (NSDate) 的年月日。 用 date 表示当前日期。测试日期为公历 2017 年 2 月 5 日,农历丁酉年,鸡年,正月初九。 获取公历年月日 用 Calendar (NSCalendar) 获取公历年月日 结果

  • 本文向大家介绍Android 遍历文件夹中所有文件的实例代码,包括了Android 遍历文件夹中所有文件的实例代码的使用技巧和注意事项,需要的朋友参考一下 可以获得文件夹中所有文件的路径及文件名。 代码很简单,直接上车,车上再解释: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Angularjs 手写日历的实现代码(不用插件),包括了Angularjs 手写日历的实现代码(不用插件)的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Angularjs 手写日历的实现代码(不用插件),分享给大家,具体如下: 效果: Html: js: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍BootStrap daterangepicker 双日历控件,包括了BootStrap daterangepicker 双日历控件的使用技巧和注意事项,需要的朋友参考一下 bootstrap-daterangepicker点击下载 需要bootstrap跟jquery的支持。 实例代码: 实例图片: 参数说明: 其中有一个小需求调整,当我们直接使用源码选择时,为啦方便用户操作,控件

  • 本文向大家介绍Android 倒计时控件 CountDownView的实例代码详解,包括了Android 倒计时控件 CountDownView的实例代码详解的使用技巧和注意事项,需要的朋友参考一下 一个精简可自定义的倒计时控件,使用 Canvas.drawArc() 绘制。实现了应用开屏页的圆环扫过的进度条效果。 代码见https://github.com/hanjx-dut/CountDown