2014-11-01 60 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

相關問題