Suj*_*jay 12 android android-datepicker datepickerdialog
我试图在datePicker对话框中以类似的格式显示日期Sep|29|2016.你可以在下面的图像中看到.
不幸的是,大部分时间我28|M09|2016很少得到我的预期输出.你可以在下面的图像中看到
我试过以下代码
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US));
calendar.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US);
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("yearr==="+yy);
System.out.println("monthh==="+mm);
System.out.println("dayy==="+dd);
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
this,yy,mm,dd);
return datepickerdialog;
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的期待.
你期待这个吗?
Button selectDate = (Button) findViewById(R.id.idButton);
selectDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar currentDate = Calendar.getInstance(Locale.ENGLISH);
int mYear = currentDate.get(Calendar.YEAR);
int mMonth = currentDate.get(Calendar.MONTH);
int mDay = currentDate.get(Calendar.DAY_OF_MONTH);
DatePickerDialog mDatePicker = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int selectedyear, int selectedmonth, int selectedday) {
GregorianCalendar gc = new GregorianCalendar();
gc.setFirstDayOfWeek(Calendar.MONDAY);
gc.set(Calendar.MONTH, view.getMonth());
gc.set(Calendar.DAY_OF_MONTH, view.getDayOfMonth());
gc.set(Calendar.YEAR, view.getYear());
DecimalFormat mFormat = new DecimalFormat("00");
String selectedDate = String.format("%s/%S/%s", gc.get(Calendar.YEAR),
mFormat.format(gc.get(Calendar.MONTH) + 1),
mFormat.format(gc.get(Calendar.DATE)));
}
}, mYear, mMonth, mDay);
mDatePicker.setTitle("Select Date");
mDatePicker.show();
}
});
Run Code Online (Sandbox Code Playgroud)
可能是由于 引起的问题
Locale。
locale之前设置电流dialog。删除Locale.US这就是问题发生的地方。
Locale locale = getResources().getConfiguration().locale;
Locale.setDefault(locale);
Run Code Online (Sandbox Code Playgroud)
将其设置为locale后dialog。
然后把你的dialog东西放上去。
Android N(API 级别 24)更新(无警告):
@TargetApi(Build.VERSION_CODES.N)
public Locale getCurrentLocale(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
return getResources().getConfiguration().getLocales().get(0);
} else{
//noinspection deprecation
return getResources().getConfiguration().locale;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |