如何设置在Android的日期选择器的具体日期 [英] How to set a specific date in date picker in android
问题描述
我尝试了很多,但都不起作用。
我需要我的日期选择器的日期开始于9月1日2014.But启动1900
我将它消失的所有过去的日期最小日期的概念。
请你们任何人的帮助。
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.daty);
点击=(ImageView的)findViewById(R.id.click);
hdate =(的TextView)findViewById(R.id.hdate); 的timeStamp =新的SimpleDateFormat(DD / MM / YYYY)格式(新的Date(System.currentTimeMillis的()));
hdate.setText(时间戳);
最终日历myCalendar = Calendar.getInstance(); 最后DatePickerDialog.OnDateSetListener日期=新DatePickerDialog.OnDateSetListener(){ @覆盖
公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,
INT请将dayOfMonth){ myCalendar.set(Calendar.YEAR,年);
myCalendar.set(的Calendar.MONTH,monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH,请将dayOfMonth);
click.setVisibility(View.VISIBLE);
updateLabel(); }
私人无效updateLabel(){
// TODO自动生成方法存根 字符串myFormat =DD / MM / YYYY;
SimpleDateFormat的SDF =新的SimpleDateFormat(myFormat,Locale.US);
hdate.setText(sdf.format(myCalendar.getTime()));
} }; hdate.setOnClickListener(新OnClickListener(){ 公共无效的onClick(视图v){ DatePickerDialog datePickerDialog =新DatePickerDialog(Daty.this,日期,myCalendar
获得(Calendar.YEAR),myCalendar.get(的Calendar.MONTH)
myCalendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
。datePickerDialog.getDatePicker()setMaxDate(System.currentTimeMillis的()); }
});
click.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
在意向=新意图(Daty.this,Mainy.class);
startActivity(在); }
}); }}
您可以通过此code设置:
日历CAL = Calendar.getInstance(Locale.ENGLISH);
datePickerDialog .init(cal.getTime()得到年()+ 1900,cal.getTime()得到月(),cal.getTime()getDay(),这一点。);
修改的
要设置最小日期为你的的DatePicker
您可以通过设置:
datePickerDialog.getDatePicker()setMinDate(System.currentTimeMillis的() - 1000)。
这台今天的日期作为最小的日期和所有过去的日期将被禁用。
注意:setMinDate在11 API引入
编辑#2 的
您需要创建自定义 DatePickerDialog
为:
类DatePickerDialog1964扩展DatePickerDialog {
DatePickerDialog1964(上下文C){
超(C,空,2014年,1,1); @燮pressWarnings(德precation)
日期分=新的日期(2014年至1900年,1,1); DatePicker的P = getDatePicker();
CalendarView CV = p.getCalendarView(); //应该检查null
长CUR = cv.getDate();
INT D = cv.getFirstDayOfWeek();
p.setMinDate(min.getTime());
cv.setDate(CUR + 1000L * 60 * 60 * 24 * 40);
cv.setFirstDayOfWeek((D + 1)%7);
cv.setDate(现);
cv.setFirstDayOfWeek(四);
}
}
要使用这样的:
新DatePickerDialog1964(上下文).show();
I tried a lot,but all doesn't work.
I need my date picker the date starts with september 1 2014.But it starts 1900. I set minimum date concept it disappears all past dates. please guys anybody help.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.daty);
click=(ImageView)findViewById(R.id.click);
hdate=(TextView)findViewById(R.id.hdate);
timeStamp = new SimpleDateFormat("dd/MM/yyyy").format(new Date(System.currentTimeMillis()));
hdate.setText(timeStamp);
final Calendar myCalendar = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
click.setVisibility(View.VISIBLE);
updateLabel();
}
private void updateLabel() {
// TODO Auto-generated method stub
String myFormat = "dd/MM/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
hdate.setText(sdf.format(myCalendar.getTime()));
}
};
hdate.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
DatePickerDialog datePickerDialog = new DatePickerDialog(Daty.this,date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
}
});
click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in=new Intent(Daty.this,Mainy.class);
startActivity(in);
}
});
}
}
You can set by this code:
Calendar cal=Calendar.getInstance(Locale.ENGLISH);
datePickerDialog .init(cal.getTime().getYear()+1900, cal.getTime().getMonth(), cal.getTime().getDay(), this);
EDIT
To set Minimum date to your DatePicker
you can set it by using :
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
which sets today's date as minimum date and all the past dates are disabled.
Note: setMinDate was introduced in API 11
EDIT #2
You need to create custom DatePickerDialog
for that :
class DatePickerDialog1964 extends DatePickerDialog {
DatePickerDialog1964(Context c) {
super(c, null, 2014, 1, 1);
@SuppressWarnings("deprecation")
Date min = new Date(2014-1900, 1, 1);
DatePicker p = getDatePicker();
CalendarView cv = p.getCalendarView(); // should check for null
long cur = cv.getDate();
int d = cv.getFirstDayOfWeek();
p.setMinDate(min.getTime());
cv.setDate(cur + 1000L*60*60*24*40);
cv.setFirstDayOfWeek((d + 1) % 7);
cv.setDate(cur);
cv.setFirstDayOfWeek(d);
}
}
To use this :
new DatePickerDialog1964(context).show();
这篇关于如何设置在Android的日期选择器的具体日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!