En las aplicaciones de Android, los selectores de fecha se utilizan para elegir la fecha de los calendarios y mostrarlos en nuestra vista de texto. Muchas veces tenemos que mostrar este cuadro de diálogo del selector de fecha haciendo clic en editar texto y luego tenemos que mostrar esa fecha dentro de nuestro texto de edición. En este artículo, veremos cómo abrir un cuadro de diálogo de selector de fecha en la aplicación de Android haciendo clic en EditText . A continuación se muestra un video de muestra para tener una idea de lo que vamos a hacer en este artículo.
Nota : este artículo de Android cubre los lenguajes Java y Kotlin .
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio .
Paso 2: trabajar con el archivo activity_main.xml
Vaya a aplicación > res > diseño > actividad_principal.xml y agregue el código a continuación. Se agregan comentarios en el código para conocer en detalle.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/idRLContainer" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <!--on below line we are creating a text for our app--> <TextView android:id="@+id/idTVHeading" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/idEdtDate" android:layout_centerInParent="true" android:layout_margin="20dp" android:gravity="center" android:padding="10dp" android:text="PopUp Datepicker while Clicking on EditText in Android" android:textAlignment="center" android:textColor="@color/black" android:textSize="20sp" android:textStyle="bold" /> <!--on below line we are creating edit text for passing data--> <EditText android:id="@+id/idEdtDate" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_margin="20dp" android:clickable="false" android:cursorVisible="false" android:focusable="false" android:focusableInTouchMode="false" android:hint="Enter date" /> </RelativeLayout>
Paso 3: trabajar con el archivo MainActivity
Vaya a aplicación > java > nombre del paquete de su aplicación > archivo MainActivity y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle.
Kotlin
package com.gtappdevelopers.kotlingfgproject import android.app.DatePickerDialog import android.os.Bundle import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import java.util.* class MainActivity : AppCompatActivity() { // on below line creating a variable. lateinit var dateEdt: EditText override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // on below line we are initializing our variables. dateEdt = findViewById(R.id.idEdtDate) // on below line we are adding // click listener for our edit text. dateEdt.setOnClickListener { // on below line we are getting // the instance of our calendar. val c = Calendar.getInstance() // on below line we are getting // our day, month and year. val year = c.get(Calendar.YEAR) val month = c.get(Calendar.MONTH) val day = c.get(Calendar.DAY_OF_MONTH) // on below line we are creating a // variable for date picker dialog. val datePickerDialog = DatePickerDialog( // on below line we are passing context. this, { view, year, monthOfYear, dayOfMonth -> // on below line we are setting // date to our edit text. val dat = (dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + year) dateEdt.setText(dat) }, // on below line we are passing year, month // and day for the selected date in our date picker. year, month, day ) // at last we are calling show // to display our date picker dialog. datePickerDialog.show() } } }
Java
package com.gtappdevelopers.googlemapsroutes; import android.app.DatePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.DatePicker; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; public class MainActivity extends AppCompatActivity { // on below line we are creating variables. private EditText dateEdt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // on below line we are initializing our variables. dateEdt = findViewById(R.id.idEdtDate); // on below line we are adding click listener // for our pick date button dateEdt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // on below line we are getting // the instance of our calendar. final Calendar c = Calendar.getInstance(); // on below line we are getting // our day, month and year. int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); // on below line we are creating a variable for date picker dialog. DatePickerDialog datePickerDialog = new DatePickerDialog( // on below line we are passing context. MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // on below line we are setting date to our edit text. dateEdt.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); } }, // on below line we are passing year, // month and day for selected date in our date picker. year, month, day); // at last we are calling show to // display our date picker dialog. datePickerDialog.show(); } }); } }
Ahora ejecute su aplicación para ver el resultado.
Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA