Android日歷控件PickTime代碼實(shí)例
最近做項(xiàng)目,需要設(shè)置用戶(hù)的生日,所以做這樣一個(gè)功能。
開(kāi)始發(fā)覺(jué)自帶的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) {
// 獲取一個(gè)日歷對(duì)象,并初始化為當(dāng)前選中的時(shí)間
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();
}
});
結(jié)果效果如此:

android:datePickerMode="spinner"
這個(gè)屬性會(huì)切換為日歷選擇狀態(tài)。

還容易出現(xiàn)英文這種鬼東西,于是不在研究,直接找插件去。
于是發(fā)現(xiàn)PickTime 很好用的,來(lái)說(shuō)下使用方法:
//日期選擇控件 implementation 'com.github.codbking:PickTime:v1.0.1' //item控件 implementation 'com.github.codbking:AllItemView:v1.0.0'
然后是調(diào)用代碼:
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) {
// 獲取一個(gè)日歷對(duì)象,并初始化為當(dāng)前選中的時(shí)間
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);
//設(shè)置上下年分限制
dialog.setYearLimt(5);
//設(shè)置標(biāo)題
dialog.setTitle("選擇時(shí)間");
//設(shè)置類(lèi)型
dialog.setType(type);
//設(shè)置消息體的顯示格式,日期格式
dialog.setMessageFormat("yyyy-MM-dd");
//設(shè)置選擇回調(diào)
dialog.setOnChangeLisener(null);
//設(shè)置點(diǎn)擊確定按鈕回調(diào)
dialog.setOnSureLisener(null);
dialog.show();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.item4:
showDatePickDialog(DateType.TYPE_YMD);
break;
}
}
}
效果如圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程實(shí)現(xiàn)WebView添加進(jìn)度條的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)WebView添加進(jìn)度條的方法,涉及Android WebView界面及控件功能相關(guān)操作技巧,需要的朋友可以參考下2017-02-02
flutter實(shí)現(xiàn)更新彈窗內(nèi)容例子(親測(cè)有效)
Flutter是一款移動(dòng)應(yīng)用程序SDK,包含框架、widget和工具,這篇文章給大家介紹flutter實(shí)現(xiàn)更新彈窗內(nèi)容例子,親測(cè)可以使用,需要的朋友參考下吧2021-04-04
Android使用第三方服務(wù)器Bmob實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼
這篇文章主要介紹了Android使用第三方服務(wù)器Bmob實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼的思路詳解,需要的朋友可以參考下2016-09-09
解決在eclipse中將android項(xiàng)目生成apk并且給apk簽名的實(shí)現(xiàn)方法詳解
本篇文章是對(duì)在eclipse中將android項(xiàng)目生成apk并且給apk簽名的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Android編程使用自定義View實(shí)現(xiàn)水波進(jìn)度效果示例
這篇文章主要介紹了Android編程使用自定義View實(shí)現(xiàn)水波進(jìn)度效果,結(jié)合實(shí)例形式詳細(xì)分析了Android水波動(dòng)畫(huà)效果的具體實(shí)現(xiàn)步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-01-01
Android編程實(shí)現(xiàn)的手寫(xiě)板和涂鴉功能
這篇文章主要介紹了Android編程實(shí)現(xiàn)的手寫(xiě)板和涂鴉功能,涉及Android界面布局及圖形繪制功能相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01

