Android: selector de fechas del calendario popdown
En mi aplicación el usuario debe seleccionar una fecha haciendo clic en Editar texto, para que actualmente estoy utilizando un diálogo de selección de fecha y su funcionamiento bueno, pero es como abrir otro diálogo y todo. Así que pensé en demostrarlo como estallar abajo menú, comprobación la imagen. Por favor, ayúdame a lograr esto!
- Cómo devolver el valor de la fecha de DatePickerDialog en Android?
- Cómo cambiar los colores "Dividers" de Dialog de DatePicker de Android
- Android Material Design Datepicker con AppCompat
- Java.lang.IllegalArgumentException: current debe ser> = start y <= end
- CalendarViewShown no está siendo reconocido en Android 5.0 Lollipop
- Cómo cambiar el color de la fuente de datepicker?
- Selector de fecha con fecha predeterminada
- Android Datepicker Fragment - ¿Cómo hacer algo cuando el usuario establece una fecha?
- SetMinDate () para DatePicker no funciona
- Convertir la fecha y la hora en milisegundos en Android
- Visualización de un DatePicker con o sin el campo del año
- Cambiar el tamaño de DatePicker en android
- DatePicker.setMinDate (long minDate) lanza IllegalArgumentException: Tiempo no entre
Simplemente crea una nueva ventana emergente e infla la vista del calendario en esa ventana: siga los siguientes pasos:
edit_text.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub showPopup(MainActivity.this); } });
Ahora showPopup () método:
// The method that displays the popup. private void showPopup(Activity context) { // Inflate the popup_layout.xml LayoutInflater layoutInflater = (LayoutInflater)getBaseContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); layout = layoutInflater.inflate(R.layout.main3, null,false); // Creating the PopupWindow final PopupWindow popupWindow = new PopupWindow( layout,400,400); popupWindow.setContentView(layout); popupWindow.setHeight(500); popupWindow.setOutsideTouchable(false); // Clear the default translucent background popupWindow.setBackgroundDrawable(new BitmapDrawable()); CalendarView cv = (CalendarView) layout.findViewById(R.id.calendarView); cv.setBackgroundColor(Color.BLUE); cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { // TODO Auto-generated method stub popupWindow.dismiss(); Log.d("date selected", "date selected " + year + " " + month + " " + dayOfMonth); } }); popupWindow.showAtLocation(layout, Gravity.TOP,5,170); }
Ahora, archivo main3.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <CalendarView android:id="@+id/calendarView" android:layout_width="match_parent" android:layout_height="400dp" android:clickable="true" android:showWeekNumber="false" /> </LinearLayout>
Y justo debajo de la presión tener una mirada y usted modificó esta ventana para requisitos particulares por su uno mismo ok.
Prueba esto @Jarvis
public class MainActivity extends Activity { EditText date; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main2); date=(EditText)findViewById(R.id.date); date.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new DatePickerDialog(ProximityActivity.this, dateD, myCalendar .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show(); } }); } Calendar myCalendar = Calendar.getInstance(); DatePickerDialog.OnDateSetListener dateD = new DatePickerDialog.OnDateSetListener(){ @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub // TODO Auto-generated method stub myCalendar.set(Calendar.YEAR, year); myCalendar.set(Calendar.MONTH, monthOfYear); myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); updateLabel(); } }; private void updateLabel() { String myFormat = "MM/dd/yy"; //In which you need put here SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.ENGLISH); date.setText(sdf.format(myCalendar.getTime())); }
}
- Campo no inyectado en el proyecto Android Dagger
- Cómo cambio de nombre de proyecto en "Proyectos recientes" en Android Studio 1.0.2?