从日期选取器隐藏日期 [英] Hide Date from Date Picker
问题描述
目前我使用的日期选择器原生一个,但我想在这样的,我只需要一个月,一年的方式改变 如何修改这个我code是继
Currently I am using date picker native one but i want to change it in such a way that i only needed month and year how to modify this my code is following
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
return new DatePickerDialog(this, datePickerListener,
year, month,day);
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener
= new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
/* year = selectedYear;
month = selectedMonth;
day = selectedDay;*/
mynewYear=selectedYear;
myNewMonth=selectedMonth;
myNewDay=selectedDay;
try {
checkDate();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*time_date_TV.setText(new StringBuilder()
.append(myNewMonth + 1).append("/")
.append(myNewDay ).append("/").append(mynewYear));
*/
}
};
我只是想隐藏最新章节任何帮助将全面谢谢
I just want to hide date Section any help will be Thank full
推荐答案
头脑风暴半天后,我发现这个解决方案,这可能帮助其他有这样的场景
After Brain Storming half a day i have found this solution this may help other having such scenarios
我的自定义类的日期选取器之后,将更新标题中的日期,每次用户改变月/年
My Custom class for date Picker is Following that will update the date in title every time user change month/year
class CustomDatePickerDialog extends DatePickerDialog implements OnDateChangedListener {
private DatePickerDialog mDatePicker;
@SuppressLint("NewApi")
public CustomDatePickerDialog(Context context,int theme, OnDateSetListener callBack,
int year, int monthOfYear, int dayOfMonth) {
super(context, theme,callBack, year, monthOfYear, dayOfMonth);
mDatePicker = new DatePickerDialog(context,theme,callBack, year, monthOfYear, dayOfMonth);
mDatePicker.getDatePicker().init(2013, 7, 16, this);
updateTitle(year, monthOfYear);
}
public void onDateChanged(DatePicker view, int year,
int month, int day) {
updateTitle(year, month);
}
private void updateTitle(int year, int month) {
Calendar mCalendar = Calendar.getInstance();
mCalendar.set(Calendar.YEAR, year);
mCalendar.set(Calendar.MONTH, month);
// mCalendar.set(Calendar.DAY_OF_MONTH, day);
mDatePicker.setTitle(getFormat().format(mCalendar.getTime()));
}
public DatePickerDialog getPicker(){
return this.mDatePicker;
}
/*
* the format for dialog tile,and you can override this method
*/
public SimpleDateFormat getFormat(){
return new SimpleDateFormat("MMM, yyyy");
};
}
和下面是code,将隐藏的一天,并从日期选择器对话框的微调
and the following is the code that will hide the day and its spinner from the date picker dialog
CustomDatePickerDialog dp = new CustomDatePickerDialog(context, android.R.style.Theme_Holo_Light_Dialog, datePickerListener, year, month, day);
DatePickerDialog obj = dp.getPicker();
try{
Field[] datePickerDialogFields = obj.getClass().getDeclaredFields();
for (Field datePickerDialogField : datePickerDialogFields) {
if (datePickerDialogField.getName().equals("mDatePicker")) {
datePickerDialogField.setAccessible(true);
DatePicker datePicker = (DatePicker) datePickerDialogField.get(obj);
Field datePickerFields[] = datePickerDialogField.getType().getDeclaredFields();
for (Field datePickerField : datePickerFields) {
if ("mDayPicker".equals(datePickerField.getName()) || "mDaySpinner".equals(datePickerField
.getName())) {
datePickerField.setAccessible(true);
Object dayPicker = new Object();
dayPicker = datePickerField.get(datePicker);
((View) dayPicker).setVisibility(View.GONE);
}
}
}
}
}catch(Exception ex){
}
obj.show();
这篇关于从日期选取器隐藏日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!