Android开发之时间选择器
来源:互联网 发布:csdn黑马程序员 编辑:程序博客网 时间:2024/06/05 03:42
有时我们开发一款 App 有这样的需求:
1,自定义年月日;
2,自定义年月日时分。
先看效果图:
1,首先在 app 文件夹 build.gradle 文件中添加:
compile 'com.jzxiang.pickerview:TimePickerDialog:1.0.0'
2,自定义参数:
long tenYears = 10L * 365 * 1000 * 60 * 60 * 24L; //L 就如float类型 0.5f 一个意思。TimePickerDialog mDialogAll = new TimePickerDialog.Builder() .setCallBack(this) //回调 .setCancelStringId("Cancel")//取消按钮 .setSureStringId("Sure")//确定按钮 .setTitleStringId("TimePicker")//标题 .setYearText("Year")//Year .setMonthText("Month")//Month .setDayText("Day")//Day .setHourText("Hour")//Hour .setMinuteText("Minute")//Minute .setCyclic(false)//是否可循环 .setMinMillseconds(System.currentTimeMillis())//最小日期和时间 .setMaxMillseconds(System.currentTimeMillis() + tenYears)//最大日期和时间 .setCurrentMillseconds(System.currentTimeMillis()) .setThemeColor(getResources().getColor(R.color.timepicker_dialog_bg)) .setType(Type.ALL)//类型 .setWheelItemTextNormalColor(getResources().getColor(R.color.timetimepicker_default_text_color))//未选中的文本颜色 .setWheelItemTextSelectorColor(getResources().getColor(R.color.timepicker_toolbar_bg))//当前文本颜色 .setWheelItemTextSize(12)//字体大小 .build();//这一步很重要,不然不会显示。mDialogAll.show(getSupportFragmentManager(), "time");
注意:如果想去掉确定或取消按钮,可以这样:
setCancelStringId(null)setCancelStringId("")orsetSureStringId("")setSureStringId(null)
3,activity_main.xml 布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color1" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/color1" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:background="@null" android:gravity="center" android:text="@string/select_date" android:textColor="@color/color3" android:textSize="15sp" /> </LinearLayout> <RelativeLayout android:id="@+id/selectDate" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/color2" android:gravity="center_vertical"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:background="@null" android:gravity="center" android:text="@string/current_date" android:textColor="@color/color4" android:textSize="15sp" /> <TextView android:id="@+id/currentDate" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:background="@null" android:gravity="center" android:paddingEnd="15dp" android:paddingStart="15dp" android:textColor="@color/color5" android:textSize="15sp" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/color1" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:background="@null" android:gravity="center" android:text="@string/select_time" android:textColor="@color/color3" android:textSize="15sp" /> </LinearLayout> <RelativeLayout android:id="@+id/selectTime" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/color2" android:gravity="center_vertical"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginLeft="15dp" android:background="@null" android:gravity="center" android:text="@string/current_time" android:textColor="@color/color4" android:textSize="15sp" /> <TextView android:id="@+id/currentTime" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:background="@null" android:gravity="center" android:paddingEnd="15dp" android:paddingStart="15dp" android:textColor="@color/color5" android:textSize="15sp" /> </RelativeLayout></LinearLayout>
4,在代码中愉快的使用:
package com.gyq.customdatepicker;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.RelativeLayout;import android.widget.TextView;import com.jzxiang.pickerview.TimePickerDialog;import com.jzxiang.pickerview.data.Type;import com.jzxiang.pickerview.listener.OnDateSetListener;import java.text.SimpleDateFormat;import java.util.Date;public class MainActivity extends AppCompatActivity implements View.OnClickListener, OnDateSetListener { private RelativeLayout selectDate, selectTime; private TextView currentDate, currentTime; private TimePickerDialog mDialogAll,mDialogYearMonthDay; long tenYears = 10L * 365 * 1000 * 60 * 60 * 24L; SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd HH:mm"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); selectTime = (RelativeLayout) findViewById(R.id.selectTime); selectTime.setOnClickListener(this); selectDate = (RelativeLayout) findViewById(R.id.selectDate); selectDate.setOnClickListener(this); currentDate = (TextView) findViewById(R.id.currentDate); currentTime = (TextView) findViewById(R.id.currentTime); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.selectDate: mDialogYearMonthDay = new TimePickerDialog.Builder() .setType(Type.YEAR_MONTH_DAY) .setCallBack(new OnDateSetListener() { @Override public void onDateSet(TimePickerDialog timePickerView, long millseconds) { String text = getDateToString(millseconds); currentDate.setText(text); } }) .setCancelStringId("取消") .setSureStringId("确定") .setTitleStringId("自定义提醒日期") .setYearText("年") .setMonthText("月") .setDayText("日") .setCyclic(false) .setMinMillseconds(System.currentTimeMillis()) .setMaxMillseconds(System.currentTimeMillis() + tenYears) .setCurrentMillseconds(System.currentTimeMillis()) .setThemeColor(getResources().getColor(R.color.dialog_bg)) .setWheelItemTextNormalColor(getResources().getColor(R.color.dialog_text)) .setWheelItemTextSelectorColor(getResources().getColor(R.color.dialog_select)) .setWheelItemTextSize(12) .build(); mDialogYearMonthDay.show(getSupportFragmentManager(),"date"); break; case R.id.selectTime: mDialogAll = new TimePickerDialog.Builder() .setCallBack(this) .setCancelStringId("取消") .setSureStringId("确定") .setTitleStringId("自定义提醒时间") .setYearText("年") .setMonthText("月") .setDayText("日") .setHourText("时") .setMinuteText("分") .setCyclic(false) .setMinMillseconds(System.currentTimeMillis()) .setMaxMillseconds(System.currentTimeMillis() + tenYears) .setCurrentMillseconds(System.currentTimeMillis()) .setThemeColor(getResources().getColor(R.color.dialog_bg)) .setType(Type.ALL) .setWheelItemTextNormalColor(getResources().getColor(R.color.dialog_text)) .setWheelItemTextSelectorColor(getResources().getColor(R.color.dialog_select)) .setWheelItemTextSize(12) .build(); mDialogAll.show(getSupportFragmentManager(), "time"); break; } } @Override public void onDateSet(TimePickerDialog timePickerView, long millseconds) { String text = getDateToString(millseconds); currentTime.setText(text); } public String getDateToString(long time) { Date d = new Date(time); return sf.format(d); }}
附上源码:TimePickerDialog
阅读全文
0 0
- Android开发之时间选择器
- Android开发之时间选择器TimePicke…
- Android开发之自定义DataTimePicker(日期时间选择器)
- Android开发之颜色选择器
- 微信小程序开发之选择器 时间选择器 日期选择器 地区选择器
- 微信小程序开发之选择器 时间选择器 日期选择器 地区选择器
- 微信小程序开发之选择器 时间选择器 日期选择器 地区选择器
- 013 - 微信小程序开发之选择器 时间选择器 日期选择器 地区选择器
- 微信小程序开发之选择器 时间选择器 日期选择器 地区选择器
- Android之日期时间选择器使用方法
- Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法
- [Android]时间选择器/日历选择器/选择器dialog
- Android开发之日期选择器的使用
- 时间选择器之 DateTimePickerDialog
- android WheelView时间选择器
- 【android】时间选择器
- Android 自定义时间选择器
- android自定义时间选择器
- python里怎么样求解微分方程?
- 计蒜客 16955 Islands(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 F)
- mysql常用代码
- mysql存储过程详细教程
- 轻量级web server Tornado代码分析
- Android开发之时间选择器
- Vim YouCompleteMe Mac OS C family 系统库函数不能自动补全
- Android
- SPI子系统分析之四:驱动模块
- protobuf的Required,Optional,Repeated限定修饰符
- 冒泡排序之java数组实现
- C++中 变量y0y1等变量 的冲突问题
- LeetCode-627. Swap Salary
- http与https区别及https是如何保障安全性