日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

android 弹窗时间,Android使用WheelView自定义时间选择器弹窗

發(fā)布時間:2024/9/30 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 弹窗时间,Android使用WheelView自定义时间选择器弹窗 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

listHour = new ArrayList<>();

private ListlistMinute = new ArrayList<>();

private Context mContext;

private int currentYear; //系統(tǒng)當(dāng)前時間

private int currentMonth;

private int currentDay;

private int currentHour;

private int currentMinute;

private int selectYear = 0;

private int selectMonth = 0;

public DateDialog(@NonNull Context context) {

super(context, R.style.DocOptionDialogStyle);

this.mContext = context;

View view = LayoutInflater.from(context).inflate(R.layout.dialog_date_layout, null);

setContentView(view);

initData();

initView(view);

}

private void initData() {

initCurrentDate();

initYear();

initMonth();

initDay();

initHour();

initMinute();

}

/**

* 初始化系統(tǒng)當(dāng)前時間

*/

private void initCurrentDate() {

Calendar calendar = Calendar.getInstance();

calendar.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));

currentYear = calendar.get(Calendar.YEAR);

currentMonth = calendar.get(Calendar.MONTH);

currentDay = calendar.get(Calendar.DAY_OF_MONTH);

currentHour = calendar.get(Calendar.HOUR_OF_DAY);

currentMinute = calendar.get(Calendar.MINUTE);

}

/**

* 集合添加年

*/

private void initYear() {

for (int i = currentYear; i <= currentYear + 1; i++) {

listYear.add(i + "年");

}

}

/**

* 集合添加月

*/

private void initMonth() {

for (int i = 1; i <= 12; i++) {

listMonth.add(String.format("%02d", i) + "月");

}

}

/**

* 集合添加天數(shù)

*/

private void initDay() {

//判斷一個月有多少天

int hasDay = getDay(currentYear, (currentMonth+1));

for (int i = 1; i <= hasDay; i++) {

listDay.add(String.format("%02d", i) + "日");

}

}

/**

* 集合添加小時

*/

private void initHour() {

for (int i = 0; i <= 24; i++) {

listHour.add(String.format("%02d", i) + "點");

}

}

/**

* 集合添加分鐘

*/

private void initMinute() {

for (int i = 0; i <= 60; i++) {

listMinute.add(String.format("%02d", i) + "分");

}

}

private void initView(View view) {

tv_dialog_cancel = view.findViewById(R.id.tv_dialog_cancel);

tv_dialog_ok = view.findViewById(R.id.tv_dialog_ok);

wv_year = view.findViewById(R.id.wv_year);

wv_month = view.findViewById(R.id.wv_month);

wv_day = view.findViewById(R.id.wv_day);

wv_hour = view.findViewById(R.id.wv_hour);

wv_minute = view.findViewById(R.id.wv_minute);

//取消彈窗

tv_dialog_cancel.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dismiss();

}

});

//設(shè)置在屏幕中的位置

Window window = getWindow();

window.setGravity(Gravity.CENTER); //居中

DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();

window.setLayout((int) (displayMetrics.widthPixels * 0.9), WindowManager.LayoutParams.WRAP_CONTENT);

//設(shè)置年數(shù)據(jù)

wv_year.setWheelAdapter(new ArrayWheelAdapter(mContext)); // 文本數(shù)據(jù)源

wv_year.setSkin(WheelView.Skin.Holo); // common皮膚

wv_year.setWheelData(listYear);

wv_year.setSelection(0);

wv_year.setVisibility(View.VISIBLE); //解決數(shù)據(jù)加載延遲

wv_year.setOnWheelItemSelectedListener(new WheelView.OnWheelItemSelectedListener() {

@Override

public void onItemSelected(int position, Object o) {

updateDay();

}

});

//月

wv_month.setWheelAdapter(new ArrayWheelAdapter(mContext)); // 文本數(shù)據(jù)源

wv_month.setSkin(WheelView.Skin.Holo); // common皮膚

wv_month.setWheelData(listMonth);

wv_month.setSelection(currentMonth);

wv_month.setVisibility(View.VISIBLE);

wv_month.setOnWheelItemSelectedListener(new WheelView.OnWheelItemSelectedListener() {

@Override

public void onItemSelected(int position, Object o) {

updateDay();

}

});

//日

wv_day.setWheelAdapter(new ArrayWheelAdapter(mContext)); // 文本數(shù)據(jù)源

wv_day.setSkin(WheelView.Skin.Holo); // common皮膚

wv_day.setWheelData(listDay);

wv_day.setSelection(currentDay - 1);

wv_day.setVisibility(View.VISIBLE);

//時

wv_hour.setWheelAdapter(new ArrayWheelAdapter(mContext)); // 文本數(shù)據(jù)源

wv_hour.setSkin(WheelView.Skin.Holo); // common皮膚

wv_hour.setLoop(true);

wv_hour.setWheelData(listHour);

wv_hour.setSelection(currentHour);

wv_hour.setVisibility(View.VISIBLE);

//分

wv_minute.setWheelAdapter(new ArrayWheelAdapter(mContext)); // 文本數(shù)據(jù)源

wv_minute.setSkin(WheelView.Skin.Holo); // common皮膚

wv_minute.setLoop(true);

wv_minute.setWheelData(listMinute);

wv_minute.setSelection(currentMinute);

wv_minute.setVisibility(View.VISIBLE);

}

/**

* 用戶滑動時更新每個月的天數(shù)

*/

private void updateDay() {

//獲取當(dāng)前滑動的位置

selectYear = Integer.parseInt(wv_year.getSelectionItem().toString().replace("年", ""));

selectMonth = Integer.parseInt(wv_month.getSelectionItem().toString().replace("月", ""));

//判斷一個月有多少天

int hasDay = getDay(selectYear, selectMonth);

listDay.clear();

for (int i = 1; i <= hasDay; i++) {

listDay.add(String.format("%02d", i) + "日");

}

wv_day.setWheelData(listDay);

}

/**

* 根據(jù)是否閏年和月份判斷本月的天數(shù)

*

* @param year

* @param month

* @return

*/

private int getDay(int year, int month) {

int day = 30;

boolean flag = false;

switch (year % 4) {

case 0:

flag = true;

break;

default:

flag = false;

break;

}

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

day = 31;

break;

case 2:

day = flag ? 29 : 28;

break;

default:

day = 30;

break;

}

return day;

}

/**

* 確定按鈕監(jiān)聽

*

* @param listener

*/

public void onClickOkBtnLisitener(View.OnClickListener listener) {

tv_dialog_ok.setOnClickListener(listener);

}

/**

* 獲取時間

* @return

*/

public String getDate(){

String year = wv_year.getSelectionItem().toString().replace("年","");

String month = wv_month.getSelectionItem().toString().replace("月","");

String day = wv_day.getSelectionItem().toString().replace("日","");

String hour = wv_hour.getSelectionItem().toString().replace("點","");

String minute = wv_minute.getSelectionItem().toString().replace("分","");

return year+"-"+month+"-"+day+" "+hour+":"+minute;

}

/**

* 根據(jù)時間戳驗證用戶選擇時間是否合理

* @return

*/

public boolean isValid(){

long time = Long.parseLong(TimeUtil.createTimestamp(getDate()));

if (TimeUtil.getUnixStamp()>time){

return false;

}

return true;

}

}

總結(jié)

以上是生活随笔為你收集整理的android 弹窗时间,Android使用WheelView自定义时间选择器弹窗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。