- 浏览: 206683 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xyyx_nk:
在demo中没有下载的示例,能详细说一下怎么监听下载过程吗?比 ...
DhNet 网络http工具(带缓存功能哦) -dhroid文档 -
zhaoguowei998:
dhroid ioc模块对 加密混淆问题 -
zhaoguowei998:
你太牛了,佩服佩服,以后要多想你请教了
dhroid ioc模块对 加密混淆问题 -
白色蜻蜓:
转载下您的文章,已注明出处。
IOS开发之百度地图API应用 -
wenjiefeng:
你好,在andrioidpn-client客户端源码里,Not ...
Android 推送之原理与初触Androidpn(Android Push Notification)
系统自带的DatePickerDialog只能一次性选择一个日期,有时候我们需要这样的功能:需要录入2个日期,比如开始日期和结束日期,如果采用DatePickerDialog需要弹出2次Dialog,能不能一次就搞定呢?那就需要下面的内容了。
自定义一个DatePickerDialog,实现OnDateChangedListener接口,里面有2个DatePicker,然后分别对这2个DatePicker设置日期就行了。
- package qianlong.qlmobile.view;
- import qianlong.qlmobile.tablet.yinhe.hk.R;
- import android.app.Dialog;
- import android.content.Context;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.DatePicker.OnDateChangedListener;
- public class DatePickerDialog extends Dialog implements OnDateChangedListener{
- private Context context;
- private Button apply,cancel;
- private DatePicker startDatePicker,endDatePicker;
- private int start_year;
- private int start_monthOfYear;
- private int start_dayOfMonth;
- private int end_year;
- private int end_monthOfYear;
- private int end_dayOfMonth;
- public DatePickerDialog(Context context,
- int start_year,
- int start_monthOfYear,
- int start_dayOfMonth,
- int end_year,
- int end_monthOfYear,
- int end_dayOfMonth
- ) {
- super(context);
- // TODO Auto-generated constructor stub
- this.context=context;
- this.start_year=start_year;
- this.start_monthOfYear=start_monthOfYear;
- this.start_dayOfMonth=start_dayOfMonth;
- this.end_year=end_year;
- this.end_monthOfYear=end_monthOfYear;
- this.end_dayOfMonth=end_dayOfMonth;
- init();
- }
- public DatePickerDialog(Context context,int theme,
- int start_year,
- int start_monthOfYear,
- int start_dayOfMonth,
- int end_year,
- int end_monthOfYear,
- int end_dayOfMonth
- ) {
- super(context);
- // TODO Auto-generated constructor stub
- this.context=context;
- this.start_year=start_year;
- this.start_monthOfYear=start_monthOfYear;
- this.start_dayOfMonth=start_dayOfMonth;
- this.end_year=end_year;
- this.end_monthOfYear=end_monthOfYear;
- this.end_dayOfMonth=end_dayOfMonth;
- init();
- }
- private void init(){
- // this.setCanceledOnTouchOutside(true);
- this.setCancelable(true);
- this.setTitle("日期选择器");
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.ipo_dialog_date_picker);
- initViews();
- initValues();
- }
- private void initViews(){
- apply=(Button)findViewById(R.id.apply);
- apply.setOnClickListener(clickListener);
- cancel=(Button)findViewById(R.id.cancel);
- cancel.setOnClickListener(clickListener);
- startDatePicker=(DatePicker)findViewById(R.id.startDatePicker);
- endDatePicker=(DatePicker)findViewById(R.id.endDatePicker);
- }
- private void initValues(){
- startDatePicker.init(start_year, start_monthOfYear, start_dayOfMonth, this);
- endDatePicker.init(end_year, end_monthOfYear, end_dayOfMonth, this);
- }
- private Button.OnClickListener clickListener=new Button.OnClickListener(){
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- switch (v.getId()) {
- case R.id.apply:
- if(onDateSetListener!=null){
- onDateSetListener.onDateSet(
- start_year, start_monthOfYear, start_dayOfMonth,
- end_year, end_monthOfYear, end_dayOfMonth
- );
- }
- dismiss();
- break;
- case R.id.cancel:
- dismiss();
- break;
- default:
- break;
- }
- }
- };
- private OnDateSetListener onDateSetListener;
- public interface OnDateSetListener {
- void onDateSet(
- int start_year,
- int start_monthOfYear,
- int start_dayOfMonth,
- int end_year,
- int end_monthOfYear,
- int end_dayOfMonth
- );
- }
- public void setOnDateSetListener(OnDateSetListener onDateSetListener){
- this.onDateSetListener=onDateSetListener;
- }
- @Override
- public void onDateChanged(DatePicker view, int year, int monthOfYear,
- int dayOfMonth) {
- // TODO Auto-generated method stub
- if(view==startDatePicker){
- this.start_year=year;
- this.start_monthOfYear=monthOfYear;
- this.start_dayOfMonth=dayOfMonth;
- }else if(view==endDatePicker){
- this.end_year=year;
- this.end_monthOfYear=monthOfYear;
- this.end_dayOfMonth=dayOfMonth;
- }
- // updateDate(view,year,monthOfYear,dayOfMonth);
- }
- // public void updateDate(
- // DatePicker view, int year, int monthOfYear,int dayOfMonth){
- // view.updateDate(year, monthOfYear, dayOfMonth);
- // }
- }
我只是简单的实现了一下,更多的扩展请大家添上。
ipo_dialog_date_picker.xml如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- >
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="开始时间:"
- android:textSize="@dimen/font_middler"
- android:textColor="@color/white"
- android:gravity="center"
- />
- <DatePicker
- android:id="@+id/startDatePicker"
- android:padding="5dip"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:layout_marginLeft="5dip"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="结束时间:"
- android:textSize="@dimen/font_middler"
- android:textColor="@color/white"
- android:gravity="center"
- />
- <DatePicker
- android:id="@+id/endDatePicker"
- android:padding="5dip"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
- </LinearLayout>
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:layout_marginTop="20dip"
- >
- <Button android:id="@+id/apply"
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:text="确认"
- android:textSize="@dimen/font_middler"
- />
- <Button android:id="@+id/cancel"
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:text="取消"
- android:textSize="@dimen/font_middler"
- android:layout_marginLeft="20dip"
- />
- </LinearLayout>
- </LinearLayout>
用法:
- private Calendar calendar_start = Calendar.getInstance();
- private Calendar calendar_end = Calendar.getInstance();
- //在需要的地方填入如下代码(通常是在Button的click事件中.)
- qianlong.qlmobile.view.DatePickerDialog d=new qianlong.qlmobile.view.DatePickerDialog(
- HK_TradeIPOActivity.this.getParent(),
- calendar_start.get(Calendar.YEAR),
- calendar_start.get(Calendar.MONTH),
- calendar_start.get(Calendar.DAY_OF_MONTH),
- calendar_end.get(Calendar.YEAR),
- calendar_end.get(Calendar.MONTH),
- calendar_end.get(Calendar.DAY_OF_MONTH)
- );
- d.setOnDateSetListener(onDateSetListener);
- d.show();
- //自己实现需要的功能
- private qianlong.qlmobile.view.DatePickerDialog.OnDateSetListener onDateSetListener=new qianlong.qlmobile.view.DatePickerDialog.OnDateSetListener(){
- @Override
- public void onDateSet(int start_year,
- int start_monthOfYear,
- int start_dayOfMonth,
- int end_year,
- int end_monthOfYear,
- int end_dayOfMonth) {
- // TODO Auto-generated method stub
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
- calendar_start.set(Calendar.YEAR, start_year);
- calendar_start.set(Calendar.MONTH, start_monthOfYear);
- calendar_start.set(Calendar.DAY_OF_MONTH, start_dayOfMonth);
- calendar_end.set(Calendar.YEAR, end_year);
- calendar_end.set(Calendar.MONTH, end_monthOfYear);
- calendar_end.set(Calendar.DAY_OF_MONTH, end_dayOfMonth);
- String startDate=simpleDateFormat.format(calendar_start.getTime());
- String endDate=simpleDateFormat.format(calendar_end.getTime());
- //doSomething(startDate,endDate)
- }
- };
over.
发表评论
-
Dhdb 简化sqlite数据库操作--dhroid文档
2014-04-15 12:30 1361android数据库其实使用的不多,dhroid框架中的 ... -
dhroid ioc模块对 加密混淆问题
2014-04-14 12:52 976大家应该已经看过ioc ... -
NetJSONAdapter 网络化的adapter(高效) -dhroid文档
2014-04-04 12:15 900关于adapter 我想对于大家来说已经不陌生了,基本应用 ... -
DhNet 网络http工具(带缓存功能哦) -dhroid文档
2014-03-24 13:36 1519网络请求是大多数应用不可获取的一部分,曾经和一个其他公司的 ... -
eventbus 事件总线-dhroid文档
2014-03-23 11:47 1272你听过onClick 事件,onItemClick 事件, ... -
ioc基础(视图,资源,assert注入)-dhroid文档
2014-03-21 12:59 870上一节 Android 极速开发框架 dhroid来了 ... -
ioc高级(接口,对象注入)-dhroid文档
2014-03-21 13:04 1143前一章 ioc基础( ... -
IOC容器详解(想晋升的进来)---dhroid框架教教程(一)
2014-03-20 10:30 984控制反转(Inversion of Control,英文缩写 ... -
Android 极速开发框架 dhroid来了(提供demo)
2014-03-19 17:24 1397我们公司内部使用的商业级android开发框架dhr ... -
HttpClient的3种超时说明
2013-03-14 11:05 890/* 从连接池中取连接的超时时间 */ConnManag ... -
MeasureSpec介绍及使用详解
2013-01-24 21:21 760一个MeasureSpec封装了父 ... -
Android使用自定义AlertDialog
2012-12-28 11:48 841Android使用自定义AlertDialog以下的代码是写在 ... -
Android学习——TextView 设置中划线 下划线
2012-10-31 14:42 3465android:textAppearance ... -
ListView与其中的Button,EditText,RatingBar等widget的click事件
2012-10-26 14:48 881在<RelativeLayout>中 an ... -
Android PNG渐变背景图片失真问题
2012-09-13 15:06 749最近一个困扰很久的问题,渐变效果的png图片,设置为控件 ... -
在线词典API
2012-09-09 19:34 753QQ词典 http://dict.qq.com/dic ... -
android Uri获取真实路径转换成File的方法
2012-08-23 12:40 3083data.getData()返回的 ... -
Java之WeakReference与SoftReference使用讲解
2012-08-22 09:46 694如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集 ... -
Android自定义捕获Application全局异常
2012-08-21 17:24 1219package qianlong.qlmobile ... -
android 缩放图片与内存溢出
2012-08-03 09:43 1233常用的Android版缩放图片代码: ContentRes ...
相关推荐
本文将深入探讨如何在Android自定义Dialog中嵌入自定义的时间选择器和日期选择器,以实现更加美观且用户体验良好的界面。 首先,我们需要理解Android原生的DatePicker和TimePicker组件。DatePicker用于让用户选择...
3. 日期选择器:根据所选年份和月份,动态计算该月份的最大日期,如二月可能是28天或29天。然后展示给用户选择。 接下来,我们讨论如何实现自定义的时分时间选择器。这个控件通常包括两个部分:小时选择和分钟选择...
这意味着,如果使用第三方库来实现自定义的日期选择器,那么在`build.gradle`文件中添加依赖后,可能需要等待库的下载和同步,这在没有网络或者网络慢的情况下会带来不便。因此,将相关代码直接复制到项目中,可以...
在这个特定的场景中,我们讨论的是一个自定义的日期选择器弹框,它允许用户选取年、月、日以及时间(小时和分钟)。下面我们将深入探讨如何实现这样的功能。 首先,我们需要创建一个自定义 DialogFragment,它是...
在Android开发中,自定义日期选择器是一种常见的需求,它允许用户以更加直观和友好的方式选择日期。本文将深入探讨如何在Android中创建自定义日期选择器,并提供相关源码解析。 首先,理解Android系统自带的日期...
在Android开发中,自定义日期选择器是一种常见的需求,它允许用户通过交互式的界面来选择特定的日期。标准的Android SDK提供了一些内置的日期选择工具,如DatePickerDialog和TimePickerDialog,但有时开发者可能需要...
4. 可选地,自定义Dialog的样式和行为。 在实际开发中,这个功能常常被用来让用户选择生日、预约日期等,是Android应用中不可或缺的一部分。希望这个详尽的解释能帮助你理解和实现自己的时间选择器Dialog。
本文将深入探讨如何创建一个可自定义的`PopupWindow`日历日期时间选择器,它允许用户根据需求自由选择显示年、月、日、时和分。这个组件在很多场景下都非常实用,比如日期输入、事件安排或者时间设定等。 首先,...
最后,将这些独立的滚轮组合成一个完整的日期和时间选择器。可以创建一个新的自定义View类,继承自`LinearLayout`或其他适合的父视图,然后在该类中包含所有的滚轮控件,并处理它们之间的交互逻辑。 6. **测试与...
日期选择器在IT行业中是常见的用户界面元素,...在提供的"DataDemo"文件中,可能包含了关于如何创建和自定义一个日期选择器的示例代码或资源,通过学习和实践这些示例,你可以更好地理解和掌握日期选择器的实现细节。
首先,Android原生系统提供了两种基本的日期时间选择器:DatePicker和TimePicker。DatePicker用于选择日期,而TimePicker则用于选择时间。这两个控件都是Android SDK的一部分,可以在XML布局文件中直接添加,或者在...
在Android开发中,`DatePickerDialog`是一个常用的组件,用于让用户选择日期。自定义`DatePickerDialog`可以帮助开发者...通过以上步骤,你可以创建出一个仿小米效果的自定义日期选择器,让日期选择变得既美观又实用。
本文将深入探讨Android Dialog的基本概念、类型、使用方法以及如何自定义Dialog。 首先,Dialog在Android中是基于Activity构建的,它以轻量级的形式浮现在当前应用界面之上,通常用于展示警告、确认、选项选择等...
首先,Android提供了两种内置的时间日期选择器:DatePicker和TimePicker。DatePicker用于选择日期,而TimePicker则用于选择时间。这两个组件都是DialogFragment的子类,可以通过弹出对话框的方式让用户进行交互。 1...
`time_layout.xml`文件是Dialog的布局文件,用于定义Dialog的视觉结构,包括日期选择器的样式、按钮位置、字体大小和颜色等。如果开发者想要修改Dialog的显示效果,比如更改日期选择器的背景、按钮文字或者调整布局...
接下来是DatePicker,它是Android提供的一个标准日期选择器。通过DatePicker,用户可以选择年、月和日。我们可以为DatePicker设置初始日期,并监听日期改变事件,以便在用户选择新日期时更新应用的状态。DatePicker...
总结,这个项目为开发者提供了在Android应用中实现滚轮效果日期选择器和时间选择器的示例,涵盖了Eclipse和Android Studio两种开发环境,同时可能涉及到自定义滚轮视图的实现,对于理解和实践Android UI设计有着重要...
一、Android日期选择器(DatePicker) DatePicker是Android SDK提供的一种内置控件,用于让用户选择日期。它通常由三个滚动条组成,分别代表年、月和日。通过自定义样式,开发者可以调整其外观,使其符合应用的整体...
在Android应用开发中,时间选择器是一个至关重要的组件,它允许用户方便地选取特定的日期或时间。在原生的Android SDK中,虽然提供了DatePicker和TimePicker控件,但有时为了满足个性化需求或者追求更好的用户体验,...