2017-08-23 64 views
-2

在Java中DatePickerDialog可以使用如:如何在Kotlin中使用DatePickerDialog?

final Calendar c = Calendar.getInstance(); 
int year = c.get(Calendar.YEAR); 
int month = c.get(Calendar.MONTH); 
int day = c.get(Calendar.DAY_OF_MONTH); 


DatePickerDialog dpd = new DatePickerDialog(getActivity(),new DatePickerDialog.OnDateSetListener() 
{ 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
    { 
     // Display Selected date in textbox 
     lblDate.setText(""+ dayOfMonth+" "+MONTHS[monthOfYear] + ", " + year); 
    } 
}, year, month,day); 
dpd.show(); 

如何科特林的DatePickerDialog用什麼樣子的?

回答

12

這將是這個樣子:

val c = Calendar.getInstance() 
    val year = c.get(Calendar.YEAR) 
    val month = c.get(Calendar.MONTH) 
    val day = c.get(Calendar.DAY_OF_MONTH) 


    val dpd = DatePickerDialog(activity, DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> 
     // Display Selected date in textbox 
     lblDate.setText("" + dayOfMonth + " " + MONTHS[monthOfYear] + ", " + year) 
    }, year, month, day) 
    dpd.show() 

這樣做是通過簡單的複製和粘貼代碼將在Android Studio中一個科特林文件。我強烈建議使用它。

2

類MainActivity:AppCompatActivity(){

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 

    val textView: TextView = findViewById(R.id.textView_date) 
    textView.text = SimpleDateFormat("dd.MM.yyyy").format(System.currentTimeMillis()) 

    var cal = Calendar.getInstance() 

    val dateSetListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> 
     cal.set(Calendar.YEAR, year) 
     cal.set(Calendar.MONTH, monthOfYear) 
     cal.set(Calendar.DAY_OF_MONTH, dayOfMonth) 

     val myFormat = "dd.MM.yyyy" // mention the format you need 
     val sdf = SimpleDateFormat(myFormat, Locale.US) 
     textView.text = sdf.format(cal.time) 

    } 

    textView.setOnClickListener { 
     DatePickerDialog([email protected], dateSetListener, 
       cal.get(Calendar.YEAR), 
       cal.get(Calendar.MONTH), 
       cal.get(Calendar.DAY_OF_MONTH)).show() 
    } 
} 

}

0

科特林Anko Android示例:

alert { 

    isCancelable = false 

    lateinit var datePicker: DatePicker 

    customView { 
     verticalLayout { 
      datePicker = datePicker { 
       maxDate = System.currentTimeMillis() 
      } 
     } 
    } 

    yesButton { 
     val parsedDate = "${datePicker.dayOfMonth}/${datePicker.month + 1}/${datePicker.year}" 
    } 

    noButton { } 

}.show() 
相關問題