我想将用户可以在DatePicker中选择的最小日期设置为当前日期.我试过这个:
DatePicker datePicker = (DatePicker) findViewById(R.id.event_date);
datePicker.setMinDate(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)
这给了我以下例外:
12-01 12:23:31.226: E/AndroidRuntime(10311): Caused by: java.lang.IllegalArgumentException: fromDate: Sat Dec 01 12:23:31 EST 2012 does not precede toDate: Sat Dec 01 12:23:31 EST 2012
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
如果用户在edittext中输入空白值,我想显示错误.但是我不知道怎么能这样做.这就是我想要的样子:

这是我创建的xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/headerLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@drawable/top_bg"
android:orientation="horizontal" >
<ImageView
android:id="@+id/back_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:src="@drawable/back_button" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="75dp"
android:layout_marginTop="10dp"
android:text="Traveller Details"
android:textColor="@android:color/white" />
</LinearLayout>
<LinearLayout
android:id="@+id/tittleLayout"
android:layout_below="@+id/headerLayout"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TittleTravellerDetails"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:gravity="left"
android:text="Traveller Details" />
<View
android:layout_width="wrap_content"
android:layout_height="2dip"
android:layout_marginTop="2dp"
android:background="#FF909090" />
</LinearLayout>
<LinearLayout
android:id="@+id/passengerDetails"
android:layout_below="@+id/tittleLayout"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<Spinner
android:id="@+id/Tittle"
android:layout_width="290dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/firstName"
android:layout_width="290dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:hint="First Name" />
<EditText …Run Code Online (Sandbox Code Playgroud) 我想点击编辑文字打开日历.之后,我想设置用户从编辑文本中的日历中选择的日期.问题是,只有当我第二次点击EditText然后打开日历时.请帮我解决问题(why calendar don't open for the first time).
EditText XML代码
<EditText
android:id="@+id/dateofBirth"
android:layout_width="290dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:maxLines="1"
android:hint="dd/mm/yyyy" />
Run Code Online (Sandbox Code Playgroud)
活动代码
public void informationPopUp() {
final Dialog dialog= new Dialog(MainActivity.this,R.style.Dialog_Fullscreen);
dialog.setContentView(R.layout.details_dialog);
dateofBirth = (EditText)dialog.findViewById(R.id.dateofBirth);
dialog.show();
myCalendar = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
dateofBirth.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View …Run Code Online (Sandbox Code Playgroud) 我想在日期上设置限制,以便用户不能选择更多的日期,例如,如果今天是1月1日那么用户不应该选择7个以上的日期,我的意思是他不能选择1月9日.我也希望他不要选择月份和年份.所以我在一周内限制他的任务.
到目前为止我所做的是显示日期选择器片段并在其中设置当前日期.我的主要活动中的代码如下:
etSelectDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePickerFragment = new DatePickerFragment() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Log.d("Date Change", "onDateSet");
Calendar c = Calendar.getInstance();
c.set(year, month, day);
DateFormat df = DateFormat.getDateInstance();
etSelectDate.setText(df.format(c.getTime()));
//nextField.requestFocus(); //moves the focus to something else after dialog is closed
}
};
datePickerFragment.show(MainActivity.this.getSupportFragmentManager(), "datePicker");
}
});
Run Code Online (Sandbox Code Playgroud)
和日期选择器片段类如下所示:
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current …Run Code Online (Sandbox Code Playgroud) 在我的申请中,我需要将年龄限制在7-18岁之间.我想显示选择范围有限的日期选择器.
如何使用此代码DatePicker将同一任务编辑到日期选择器中
我使用下面的代码来限制年份,但是当点击"+/-"按钮时,年份可以在限制范围之上/之下更改.我希望该用户不能增加或减少日期值.
return new DatePickerDialog(this,
mDateSetListener,
mYear-7, mMonth, mDay);
Run Code Online (Sandbox Code Playgroud)
请帮助我设定7至18岁之间的出生日期限制,如果可能的话,请设置日期和月份.
另外,我如何设定最低年龄限制?
谢谢.