2017-08-23 2 views
-2

En Java un DatePickerDialog peut être utilisé comme:Comment utiliser DatePickerDialog dans Kotlin?

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(); 

Comment DatePickerDialog de Kotlin ressembler à utiliser?

Répondre

12

Il ressemblerait à quelque chose comme ceci:

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() 

cela a été fait en copiant simplement et coller le code dans un fichier Kotlin en studio android. Je recommande fortement de l'utiliser.

2

classe 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

Kotlin Anko Android Exemple:

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()