2014-11-01 177 views
0

当模拟器运行时,会出现DatetimePicker,但是当选择某个项目时,它会跳过几个项目并给出一个我没有选择的值。日期时间选择器在选择年份月份或日期时跳过项目Android

例如:当它出现时,它显示“Aug 13 1990”,并在“aug”之上显示其“7月”。但是当我选择“七月”它旋转并让我“一月”

它是我的模拟器规格有问题吗?或代码? 还有另一种方法来做这个日期选择?

非常感谢您的帮助。先谢谢你。

DatePickerDialog mDatePicker=new DatePickerDialog(this, new OnDateSetListener() {     
     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      EditText editText = (EditText)findViewById(R.id.ET_birthday); 
      editText.setText(year + "/" + monthOfYear + "/" + dayOfMonth, TextView.BufferType.EDITABLE); 

     } 
    },1990, 9, 13); 
    mDatePicker.setTitle("Select date");     
    mDatePicker.show(); 

回答

0

试试这个。

// initialise your datePicker 

Dialog datePicker = new DatePickerDialog(this, datePickerListener, year, 
       month, day); 
     datedial.show(); 

//这里是你的datePickerListener

@SuppressLint("SimpleDateFormat") 
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 
    @SuppressLint("SimpleDateFormat") 
    public void onDateSet(DatePicker view, int selectedYear, 
      int selectedMonth, int selectedDay) { 
     date = selectedYear + "-" + (selectedMonth + 1) + "-" + selectedDay; 

    // format your date in desired format 

     SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-M-d"); 
     try { 
      Date dateObj = curFormater.parse(date); 
      SimpleDateFormat postFormater = new SimpleDateFormat(
        "dd MMMM yyyy"); 
      String newDateStr = postFormater.format(dateObj); 
      yourEditText.setText(newDateStr); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}; 
+0

嗨,上述方法还没有工作。但随后我将模拟器更改为具有更高分辨率的设备,然后正常工作。这意味着我的应用程序不会在较小分辨率的设备上工作? :/ – 2014-11-01 14:47:47

+0

嗨,对不起,造成麻烦。现在我只是在我的手机中安装了这个文件,它完美的工作。必须是我以前使用的设备模拟器的问题:/ – 2014-11-01 15:02:34

+0

hehe .. congrats .. :) – 2014-11-03 04:16:26

相关问题