Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Popup DatePicker para EditText

He estado tratando de mirar otras preguntas aquí sobre DatePickers haciendo estallar para EditText pero he tenido problemas para que funcione.

He visto ejemplos en los que puede utilizar setOnClickListener o setOnTouchListener , ¿cuál sería el mejor?

  • El emulador de Android no se inicia, mostrando "parámetro de línea de comandos no válido"
  • Android: NoClassDefFoundError android.os.AsyncTask
  • Evitar Android Lint se queja de cadena no traducida
  • ¿Cómo mostrar la página web en mi aplicación?
  • El dispositivo Android aparece sin conexión a pesar de conectar USB y activar la depuración USB
  • Cómo cambiar el color de la línea en EditText
  • También he visto un par de diseños diferentes para el DatePicker , ¿cómo cambiar el diseño?

    A continuación se muestra mi código hasta el momento, intentó usar código de los otros ejemplos, pero no pudo conseguir que funcione.

     import android.app.Activity; import android.os.Bundle; import android.widget.EditText; import android.widget.TextView; /** * Created by MOS182 on 7/21/13. */ public class AddReminder extends Activity { TextView Title, Amount, PaymentDate, ReminderDate, ReminderTime; EditText eTitle, eAmount, ePaymentDate, eReminderDate, eReminderTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.reminders_dialog); initializeVariables(); } private void initializeVariables() { Title = (TextView) findViewById(R.id.tvTitle); Amount = (TextView) findViewById(R.id.tvAmount); PaymentDate = (TextView) findViewById(R.id.tvPaymentDate); ReminderDate = (TextView) findViewById(R.id.tvReminderDate); ReminderTime = (TextView) findViewById(R.id.tvReminderTime); eTitle = (EditText) findViewById(R.id.etTitle); eAmount = (EditText) findViewById(R.id.etAmount); ePaymentDate = (EditText) findViewById(R.id.etPaymentDate); eReminderDate = (EditText) findViewById(R.id.etReminderDate); eReminderTime = (EditText) findViewById(R.id.etReminderTime); } } 

  • ¿Qué es ScrimInsetsFrameLayout?
  • Establecer texto y obtener texto del portapapeles
  • Android remove notification (creada por mNotifyBuilder) al hacer clic
  • Abrir el archivo pdf desde el servidor con la intención de Android
  • Android: Ampliación del libro de contactos del usuario. Rendimiento ContentProvider vs Sqlite vs Lista en la memoria
  • Prueba de Android con Robolectric
  • 3 Solutions collect form web for “Popup DatePicker para EditText”

    He utilizado el método setOnClickListener EditText para mostrar un DatePicker .

    Y luego en el conjunto de archivos XML propiedad EditText android:focusable="false" . Así que se puede evitar el enfoque y los teclados virtuales.

     yourEditText.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //To show current date in the datepicker Calendar mcurrentDate=Calendar.getInstance(); mYear=mcurrentDate.get(Calendar.YEAR); mMonth=mcurrentDate.get(Calendar.MONTH); mDay=mcurrentDate.get(Calendar.DAY_OF_MONTH); DatePickerDialog mDatePicker=new DatePickerDialog(**YourActivityName**.this, new OnDateSetListener() { public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) { // TODO Auto-generated method stub /* Your code to get date and time */ } },mYear, mMonth, mDay); mDatePicker.setTitle("Select date"); mDatePicker.show(); } }); 

    Prueba esto … comenta tus pensamientos … gracias ..

     /* create calndar object */ Calendar myCalendar = Calendar.getInstance(); /* find textview*/ date = (TextView) findViewById(R.id.stdate); /* and copy the fallowing code*/ final DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) { // TODO Auto-generated method stub myCalendar.set(Calendar.YEAR, year); myCalendar.set(Calendar.MONTH, monthOfYear); myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); String myFormat = "dd/MMM/yyyy"; //In which you need put here SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.UK); date.setText(sdf.format(myCalendar.getTime())); } }; date.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new DatePickerDialog(MainActivity.this, datePickerListener, myCalendar .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show(); } }); 

    Para APIs más viejas es decir todavía intento apoyar 16 … así que:

    Desde http://javapapers.com/android/android-datepicker/

    Puede utilizar un DialogFragment que implementa DatePickerDialog como exampled:

     public static class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { // Thanks to -> http://javapapers.com/android/android-datepicker/ EditText mEditText; public SelectDateFragment(EditText mEditText){ this.mEditText = mEditText; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Calendar calendar = Calendar.getInstance(); int yy = calendar.get(Calendar.YEAR); int mm = calendar.get(Calendar.MONTH); int dd = calendar.get(Calendar.DAY_OF_MONTH); return new DatePickerDialog(getActivity(), this, yy, mm, dd); } public void onDateSet(DatePicker view, int yy, int mm, int dd) { populateSetDate(mEditText, yy, mm+1, dd); } } public void selectDate() { DialogFragment newFragment = new SelectDateFragment(editText); newFragment.show(getFragmentManager(), "DatePicker"); } public static void populateSetDate(EditText mEditText, int year, int month, int day) { mEditText.setText(month+"/"+day+"/"+year); } 

    En su conjunto de actividades, edite el valor de texto según sea necesario:

     private EditText editText; //... 

    Adjuntar el listener onclick:

      editText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { selectDate(); } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.