Android DatePicker es un control de interfaz de usuario que se utiliza para seleccionar la fecha por día, mes y año en nuestra aplicación de Android. DatePicker se utiliza para garantizar que los usuarios seleccionen una fecha válida.
En Android DatePicker tiene dos modos, el primero para mostrar el calendario completo y el segundo muestra las fechas en la vista giratoria.
Podemos crear un control DatePicker de dos maneras, ya sea manualmente en un archivo XML o crearlo en un archivo de actividad mediante programación.
Primero creamos un nuevo proyecto siguiendo los siguientes pasos:
- Haga clic en Archivo, luego en Nuevo => Nuevo proyecto .
- Después de eso, incluya el soporte de Kotlin y haga clic en siguiente.
- Seleccione el SDK mínimo según su conveniencia y haga clic en el botón Siguiente .
- Luego seleccione la actividad vacía => siguiente => finalizar .
DatePicker de Android con modo Calendario
Podemos usar android:datePickerMode para mostrar solo la vista del calendario. En el siguiente ejemplo, estamos usando DatePicker en modo Calendario.
XML
<DatePicker android:id="@+id/datePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:datePickerMode="calendar"/>
El código anterior de DatePicker se puede ver en una aplicación de Android como esta
DatePicker de Android con modo Spinner
También podemos mostrar DatePicker en formato de rueda giratoria, como seleccionar el día, el mes y el año por separado, usando el atributo android:datePickerMode y configurando android:calendarViewShown=”false” , de lo contrario, tanto la rueda giratoria como el calendario se pueden ver simultáneamente.
XML
<DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:datePickerMode="spinner" android:calendarViewShown="false"/>
El código anterior de DatePicker se puede ver en una aplicación de Android como esta
Diferentes atributos del control DatePicker –
Atributos XML | Descripción |
---|---|
Android: identificación | Se utiliza para identificar de forma única el control. |
android:modo selector de fecha | Se utiliza para especificar el modo de selector de fecha (spinner o calendario) |
android:calendarioTextoColor | Se utiliza para especificar el color del texto. |
android: vista de calendario mostrada | Se utiliza para especificar si se muestra o no la vista del calendario. |
android:fondo | Se utiliza para establecer el color de fondo de la vista de texto. |
Android: relleno | Se utiliza para establecer el relleno de izquierda, derecha, arriba y abajo. |
Para usar Calendar DatePicker en activity_main.xml
En este archivo, agregaremos el widget DatePicker y Button y estableceremos sus atributos para que se pueda acceder a ellos en el archivo kotlin.
XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/linear_layout" android:gravity = "center"> <DatePicker android:id="@+id/date_Picker" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
Para usar Spinner DatePicker en activity_main.xml
En este archivo, agregaremos el widget DatePicker y Button y estableceremos sus atributos para que se pueda acceder a ellos en el archivo kotlin.
XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/linear_layout" android:gravity = "center"> <DatePicker android:id="@+id/date_Picker" android:layout_width="match_parent" android:layout_height="match_parent" android:datePickerMode = "spinner" android:calendarViewShown="false"/> </LinearLayout>
Modifique el archivo strings.xml para agregar la array de strings
Aquí especificaremos el nombre de la actividad.
XML
<resources> <string name="app_name">DatePickerInKotlin</string> </resources>
Acceda a DatePicker en el archivo MainActivity.kt
En primer lugar, declaramos una variable datePicker para acceder al widget DatePicker desde el diseño XML.
val datePicker = findViewById<DatePicker>(R.id.date_Picker)
luego, declaramos otra variable hoy para obtener el get actual como este.
val today = Calendar.getInstance() datePicker.init(today.get(Calendar.YEAR), today.get(Calendar.MONTH), today.get(Calendar.DAY_OF_MONTH)
Para mostrar la fecha seleccionada del calendario usaremos
{ view, year, month, day -> val month = month + 1 val msg = "You Selected: $day/$month/$year" Toast.makeText(this@MainActivity, msg, Toast.LENGTH_SHORT).show() }
Estamos familiarizados con otras actividades en artículos anteriores, como acceder al botón y configurar OnClickListener, etc.
Kotlin
package com.geeksforgeeks.myfirstkotlinapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.* import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val datePicker = findViewById<DatePicker>(R.id.date_Picker) val today = Calendar.getInstance() datePicker.init(today.get(Calendar.YEAR), today.get(Calendar.MONTH), today.get(Calendar.DAY_OF_MONTH) ) { view, year, month, day -> val month = month + 1 val msg = "You Selected: $day/$month/$year" Toast.makeText(this@MainActivity, msg, Toast.LENGTH_SHORT).show() } } }
Archivo AndroidManifest.xml
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.geeksforgeeks.myfirstkotlinapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Ejecutar como emulador:
Publicación traducida automáticamente
Artículo escrito por Praveenruhil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA