android日历编程,Android日历控件PickTime代码实例

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

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

}

});

结果效果如此:

05fe20d4631bb407d5c719e2d48e67a1.png

android:datePickerMode="spinner"

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

8555206f4668c9cd318629138e6f7a34.png

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

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

}

}

}

效果如图:

8890eb44bd4bb040db5bf07111662a61.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值