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?

  • Cómo encontrar View from string en vez de R.id
  • Android - SwipeRefreshLayout con texto vacío
  • Cómo restaurar la pila trasera de fragmentos en una actividad (después de que se cancela la aplicación en backgroud)
  • ¿Por qué Android Studio dice "Waiting For Debugger" si no estoy depurando?
  • Obtención de valores de índices o índices desde una preferencia de lista
  • Codificación de Android con switch (String)
  • 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); } } 

  • Android: cómo obtener información de la ubicación de los extras del paquete de intenciones cuando se utiliza LocationManager.requestLocationUpdates ()
  • WebView no se procesa hasta tocar Android 4.2.2
  • Cómo definir dimens.xml para cada tamaño de pantalla diferente en android?
  • Datepicker: Cómo popup datepicker cuando haga clic en el botón y almacenar valor en variable
  • ¿Cómo puedo añadir el nuevo "botón de acción flotante" entre dos widgets / diseños
  • ¿Qué lenguajes de programación se pueden utilizar para desarrollar aplicaciones de Android?
  • 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.