Material Design Components (MDC Android) ofrece a los diseñadores y desarrolladores una forma de implementar Material Design en su aplicación de Android. Desarrollados por un equipo central de ingenieros y diseñadores de UX en Google, estos componentes permiten un flujo de trabajo de desarrollo confiable para crear aplicaciones de Android atractivas y funcionales. Si le gusta la forma en que los elementos de la interfaz de usuario de los componentes de diseño de materiales de Google para Android que están diseñados por Google son bastante impresionantes, aquí hay algunos pasos que deben seguirse para obtenerlos, y uno de ellos es Componentes de diseño de materiales de Google (MDC ) Selector de fechas. Hay muchos selectores de fechas disponibles para Android que son de código abierto. Pero los selectores de fechas de diseño de materiales ofrecen más funcionalidad al usuario y son fáciles de implementar para los desarrolladores. Eche un vistazo a las siguientes imágenes sobre qué tipo de selectores de fechas de diseño de materiales se discutirán en esta discusión. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java . En este artículo, vamos a implementar dos tipos de selectores de fechas de diseño de materiales, como se puede ver en las imágenes a continuación.
- Selector de fecha normal de diseño de material
- Selector de intervalo de fechas de diseño de material
XML
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> <!-- Customize your theme here --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" tools:ignore="HardcodedText"> <!--make sure to give the appropriate IDs to textView and the button to handle them in MainActivity.java--> <!--simple text view to show the selected date by the user--> <TextView android:id="@+id/show_selected_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="128dp" android:text="Selected Date is : " android:textSize="18sp" /> <!--button to open the material design date picker dialog--> <Button android:id="@+id/pick_date_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="32dp" android:text="Select Date" android:textSize="18sp" app:icon="@drawable/ic_baseline_add_to_photos_24" /> </LinearLayout>
Java
import android.annotation.SuppressLint; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener; public class MainActivity extends AppCompatActivity { private Button mPickDateButton; private TextView mShowSelectedDateText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // now register the text view and the button with // their appropriate IDs mPickDateButton = findViewById(R.id.pick_date_button); mShowSelectedDateText = findViewById(R.id.show_selected_date); // now create instance of the material date picker // builder make sure to add the "datePicker" which // is normal material date picker which is the first // type of the date picker in material design date // picker MaterialDatePicker.Builder materialDateBuilder = MaterialDatePicker.Builder.datePicker(); // now define the properties of the // materialDateBuilder that is title text as SELECT A DATE materialDateBuilder.setTitleText("SELECT A DATE"); // now create the instance of the material date // picker final MaterialDatePicker materialDatePicker = materialDateBuilder.build(); // handle select date button which opens the // material design date picker mPickDateButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // getSupportFragmentManager() to // interact with the fragments // associated with the material design // date picker tag is to get any error // in logcat materialDatePicker.show(getSupportFragmentManager(), "MATERIAL_DATE_PICKER"); } }); // now handle the positive button click from the // material design date picker materialDatePicker.addOnPositiveButtonClickListener( new MaterialPickerOnPositiveButtonClickListener() { @SuppressLint("SetTextI18n") @Override public void onPositiveButtonClick(Object selection) { // if the user clicks on the positive // button that is ok button update the // selected date mShowSelectedDateText.setText("Selected Date is : " + materialDatePicker.getHeaderText()); // in the above statement, getHeaderText // is the selected date preview from the // dialog } }); } }
Java
import android.annotation.SuppressLint; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import androidx.core.util.Pair; import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener; public class MainActivity extends AppCompatActivity { private Button mPickDateButton; private TextView mShowSelectedDateText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // now register the text view and the button with // their appropriate IDs mPickDateButton = findViewById(R.id.pick_date_button); mShowSelectedDateText = findViewById(R.id.show_selected_date); // now create instance of the material date picker // builder make sure to add the "dateRangePicker" // which is material date range picker which is the // second type of the date picker in material design // date picker we need to pass the pair of Long // Long, because the start date and end date is // store as "Long" type value MaterialDatePicker.Builder<Pair<Long, Long>> materialDateBuilder = MaterialDatePicker.Builder.dateRangePicker(); // now define the properties of the // materialDateBuilder materialDateBuilder.setTitleText("SELECT A DATE"); // now create the instance of the material date // picker final MaterialDatePicker materialDatePicker = materialDateBuilder.build(); // handle select date button which opens the // material design date picker mPickDateButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // getSupportFragmentManager() to // interact with the fragments // associated with the material design // date picker tag is to get any error // in logcat materialDatePicker.show(getSupportFragmentManager(), "MATERIAL_DATE_PICKER"); } }); // now handle the positive button click from the // material design date picker materialDatePicker.addOnPositiveButtonClickListener( new MaterialPickerOnPositiveButtonClickListener() { @SuppressLint("SetTextI18n") @Override public void onPositiveButtonClick(Object selection) { // if the user clicks on the positive // button that is ok button update the // selected date mShowSelectedDateText.setText("Selected Date is : " + materialDatePicker.getHeaderText()); // in the above statement, getHeaderText // will return selected date preview from the // dialog } }); } }
Publicación traducida automáticamente
Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA