Android 的 DatePicker、TimePicker或NumberPicker
布局文件加上这个就可以,去除日期选择器、时间选择器或数值选择器的可编辑状态。
android:descendantFocusability="blocksDescendants"
CalendarView项目
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical"
tools:context="com.example.googlenumberpicker.MainActivity" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" > <NumberPicker
android:id="@+id/np_date"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <NumberPicker
android:id="@+id/np_hour"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" /> <NumberPicker
android:id="@+id/np_minute"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</NumberPicker>
</LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
layout_main.xml
import java.util.Calendar; import android.app.Activity;
import android.os.Bundle;
import android.widget.NumberPicker;
import android.widget.NumberPicker.Formatter;
import android.widget.NumberPicker.OnScrollListener;
import android.widget.NumberPicker.OnValueChangeListener; public class MainActivity extends Activity implements OnValueChangeListener, OnScrollListener, Formatter
{
int year;
int month;
int day;
int hour;
int minute;
String[] dates; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
hour = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
this.initDates();
this.init();
} private void initDates() {
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SUNDAY);
c.set(year, 0, 1);
dates = new String[c.getActualMaximum(Calendar.DAY_OF_YEAR)];
for (int i = 0; i < dates.length; i++) {
dates[i] = this.format((c.get(Calendar.MONTH)+1)) + "-" + this.format(c.get(Calendar.DAY_OF_MONTH));
c.roll(Calendar.DAY_OF_YEAR, true);
}
} private void init() {
NumberPicker np_date = (NumberPicker) this.findViewById(R.id.np_date);
NumberPicker np_hour = (NumberPicker) this.findViewById(R.id.np_hour);
NumberPicker np_minute = (NumberPicker) this.findViewById(R.id.np_minute); np_date.setFormatter(this);
np_date.setOnScrollListener(this);
np_date.setOnValueChangedListener(this);
np_date.setDisplayedValues(dates);
np_date.setMaxValue(dates.length - 1);
np_date.setValue(Calendar.getInstance().get(Calendar.DAY_OF_YEAR)-1); np_hour.setFormatter(this);
np_hour.setOnScrollListener(this);
np_hour.setOnValueChangedListener(this);
np_hour.setMaxValue(23);
np_hour.setMinValue(0);
np_hour.setValue(hour); np_minute.setFormatter(this);
np_minute.setOnScrollListener(this);
np_minute.setOnValueChangedListener(this);
np_minute.setMaxValue(59);
np_minute.setMinValue(0);
np_minute.setValue(minute);
} @Override
public String format(int value) {
String tmpStr = String .valueOf(value);
if (value < 10) {
tmpStr = "0" + tmpStr;
}
return tmpStr;
} @Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
// Toast.makeText(MainActivity.this, oldVal + "变成" + newVal , 0).show();
} @Override
public void onScrollStateChange(NumberPicker view, int scrollState) {
/*switch (scrollState) {
case OnScrollListener.SCROLL_STATE_FLING:
Toast.makeText(MainActivity.this, "后续滑动..." , 0).show();
break;
case OnScrollListener.SCROLL_STATE_IDLE:
Toast.makeText(MainActivity.this, "不滑动" , 0).show();
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
Toast.makeText(MainActivity.this, "滑动中" , 0).show();
break; default:
break;
}*/
} }
MainActivity.java

Android日期对话框NumberPicker的用法教程 - Android移动开发技术文章_手机开发 - 红黑联盟
疑难杂症专解:Stack Overflow
Android 的 DatePicker、TimePicker或NumberPicker的更多相关文章
- Android中关闭DatePicker、TimePicker、NumberPicker的可编辑模式
DatePicker.TimePicker.NumberPicker这三个控件在使用的过程中,用户点击数字会弹出键盘,有时候会造成布局被挤压不好看,也有其他的需求. 我看了网上很多文章的解决办法都无效 ...
- Android 使用DatePicker以及TimePicker显示当前日期和时间
课程内容1.介绍DatePicker和TimePicker两种实现动态输入日期和事件的功能2.介绍DatePickerDialog和TimePickerDialog来年耕种实现动态输入日期和事件的对话 ...
- android datepicker timepicker简单用法
1.效果图 2. xml布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- Android中DatePicker与TimePicker用法讲解(包括DatePickerDialog与TimePickerDialog)
实现效果:将DatePicker和TimePicker修改的日期和时间实时显示在程序标题栏上. 1.通过DatePicker和TimePicker来实现 布局为main.xml <?xml ve ...
- Android的DatePicker和TimePicker-android学习之旅(三十八)
DatePicker和TimePicker简介 DatePicker和TimePicker是从FrameLayout继承而来,他们都是比较简单的组件.时间改变时间分别添加OnDateChangeLis ...
- 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker
[源码下载] 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker 作者:webabcd 介绍重新想象 Windows 8.1 ...
- android之datepicker控件用法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 背水一战 Windows 10 (44) - 控件(日期类): CalendarView, DatePicker, TimePicker
[源码下载] 背水一战 Windows 10 (44) - 控件(日期类): CalendarView, DatePicker, TimePicker 作者:webabcd 介绍背水一战 Window ...
- Android中DatePicker日期选择器的使用和获取选择的年月日
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
随机推荐
- cocoapods无法使用(mac os 10.11升级导致pod: command not found)
之前安装了cocoapods, 那么输入 : sudo gem install -n /usr/local/bin cocoapods 如果还不行的话 首先在终端输入 gem sources -l 查 ...
- Learning in Two-Player Matrix Games
3.2 Nash Equilibria in Two-Player Matrix Games For a two-player matrix game, we can set up a matrix ...
- Java IO流
File类 ·java.io.File类:文件和目录路径名的抽象表示形式,与平台无关 ·File能新建.删除.重命名文件和目录,但File不能访问文件内容本身.如果需要访问文件内容本身,则需要使用输入 ...
- Monkey基本使用流程及测试报告分析
前一篇文章介绍了Monkey的API函数内容,这篇文章介绍windows环境下Monkey的基本使用方法. 由于博客园年底才能完成对markdown解析的升级,可移步我的个人博客查看此文,已获得更好的 ...
- RankLib参数翻译
写在前面,metric2t指标详解: NDCG(Normalized discounted cumulative gain)即DCG/IDCGCG(cumulative gain)DCG(Discou ...
- C语言程序设计第十次作业
一.实验内容 1.有5名学生,每名学生有语文.数学和外语3门课的考试成绩.编程统计各学生的总分和平均分以及所有学生各科的平均分.要求成绩在程序中初始化,结果以表格的形式输出. ...
- IOS百度地图获取所在的城市名称
笔者的app要实现定位所在省和城市名称,借此总结巩固一下! @interface VenueListVC : BasePageTableViewVC<BMKLocationServiceDele ...
- Junity测试最大子数列和的Java程序
1.Java环境的安装与配置: Jdk的安装: Jdk下载链接:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-13 ...
- 在Visual Studio中使用Git命令提示符
VS2015自带了Git插件,但有时候我觉得Git控制台命令更方便些. VS中本身不能把Git Bush作为浮动窗集成进来,但我们可以通过Power Shell来使用Git命令. ---------- ...
- flash上传控件跨域
工作中需要使用百度开发的ueditor,但服务器部署中前端代码和后端代码在不同的域名下,现已解决的前端调后端代码的跨域问题.可是,ueditor中的上传图片flash控件也涉及跨域问题,经过查找发现可 ...