android DatePickerDialog怎么设置日期选择范围。

有个订房的入住日期,还有退房日期。入住日期肯定在当前日期之后,退房日期肯定在入住日期之后。那么怎么做出这个功能呢?我想要的是:不能选择的日期直接灰掉。不要总是出现提示信息... 有个订房的入住日期,还有退房日期。入住日期肯定在当前日期之后,退房日期肯定在入住日期之后。那么怎么做出这个功能呢?
我想要的是:不能选择的日期直接灰掉。不要总是出现提示信息,感觉很繁琐。。
展开
 我来答
QQMSD8
推荐于2016-09-23 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
时间设置对话框DatePickerDialog的使用
一、可以同过重载DatePickerDialog的setTitle来设置个性的标题
比如:
@Override
public void setTitle(CharSequence title) {
// TODO Auto-generated method stub
java.text.DateFormat dataFormat = (DateFormat
.getDateFormat(getContext()));
mCalendar = Calendar.getInstance();
//可得到“12/31/1969(Wed)”形式的日期格式
String strTitle=dataFormat.format(mCalendar.getTime())
+ DateFormat.format(" (E)", mCalendar.getTime()).toString();
super.setTitle(dataFormat.format(strTitle);
}

二、通过onDateChanged回调函数监听时间的改变
当时间改变时(编辑) 以下函数回被调用
public void onDateChanged(DatePicker view, int year, int month, int day) {
Log.i("hubin","onDateChanged");
}

三、通过updateDate()设置年月日
public void updateDate (int year, int monthOfYear, int dayOfMonth)设置DatePickerDialog的年,月,日

四、通过onDateChangedListener来监听时间设置对话框的确定按钮被按下
onDateChangedListener的onDateSet是用于都在时间设置对话框的确定按钮被按下的监听

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

public class TestClock extends Activity implements OnDateSetListener, OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.date);
btn.setOnClickListener(this);
}

public void onClick(View v) {//普通按钮事件
Calendar d = Calendar.getInstance(Locale.CHINA);
//创建一个日历引用d,通过静态方法getInstance() 从指定时区 Locale.CHINA 获得一个日期实例
Date myDate=new Date();
//创建一个Date实例
d.setTime(myDate);
//设置日历的时间,把一个新建Date实例myDate传入
int year=d.get(Calendar.YEAR);
int month=d.get(Calendar.MONTH);
int day=d.get(Calendar.DAY_OF_MONTH);
//获得日历中的 year month day
DatePickerDialog dlg=new DatePickerDialog(this,this,year,month,day);
//新建一个DatePickerDialog 构造方法中
// (设备上下文,OnDateSetListener时间设置监听器,默认年,默认月,默认日)
dlg.show();
//让DatePickerDialog显示出来
}

public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth){
//DatePickerDialog 中按钮Set按下时自动调用
TextView txt = (TextView) findViewById(R.id.text);
//通过id获得TextView对象
txt.setText(Integer.toString(year) + "-" +
Integer.toString(monthOfYear) + "-" +
Integer.toString(dayOfMonth));
//设置text
}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/text"
/>

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/date"
android:text="设置时间"
>
</Button>
</LinearLayout>
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
多卓少2
推荐于2016-06-10 · 超过25用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:67.1万
展开全部
  package com.solide;
  import java.util.Calendar;
  import android.app.Activity;
  import android.app.TimePickerDialog;
  import android.app.TimePickerDialog.OnTimeSetListener;
  import android.os.Bundle;
  import android.text.format.DateFormat;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.TimePicker;
  public class TestTimeTickerActivity extends Activity implements OnClickListener{
  /** Called when the activity is first created. */
  private Calendar c;
  private Button button;
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  button = (Button)findViewById(R.id.button);
  button.setOnClickListener(this);
  c = Calendar.getInstance();
  c.setTimeInMillis(System.currentTimeMillis());

  }
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  int hour = c.get(Calendar.HOUR_OF_DAY);
  int minute = c.get(Calendar.MINUTE);
  new TimePickerDialog(this, new OnTimeSetListener() {
  @Override
  public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
  // TODO Auto-generated method stub
  }
  }
  , hour, minute, DateFormat.is24HourFormat(this)).show();

  }
  }

  去试试
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanwei4199
2012-08-10 · TA获得超过397个赞
知道小有建树答主
回答量:943
采纳率:0%
帮助的人:493万
展开全部
我只做过简单的时间设置,你可以重写方法,改变他的设置范围
追问
你这个等于没回答。不过我研究出一点了。和你分享下:
private Calendar now = Calendar.getInstance();

DatePicker dp = dialog.getDatePicker();
dp.setMinDate(now.getTime().getTime());
追答
恩,不错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式