Intereting Posts
Как применить прослушиватель кликов? Бета-тестирование Google Play без опубликованного приложения? PeekService () возвращает null, даже если служба запущена, если служба перезагружается системой после того, как OOM убьет Как я могу программно открыть (показать на экране) NavigationView Использование изображения эмулятора Android на нескольких компьютерах Переименование имени пакета внутри APK Декодировать большую строку base64 Когда метод getItemCount () вызывается в адаптере RecycleView? Угрозы GooglePlayServicesUtil.isGooglePlayServicesAvailable () Ограничение высоты ListView на Android Как изменить цвет фона диалогового окна предупреждения по умолчанию для Android Плохая длина массива, менеджер уведомлений вызывает сбой телефона на 4.4 Создание глобальных функций в android Android – получение списка контактов с уличными адресами, но не таких недорогих, как Skype, где адрес является только городом и штатом WebView не будет прокручиваться в Android 2.x

Как установить значение DatePickerDialog в EditText?

Я хочу установить значение DatePickerDialog в EditText с помощью (sdf.format(myCalendar.getTime())); , Я пробовал это так, но это не работает. Как это исправить?

Ниже мой код:

 Calendar myCalendar; DatePickerDialog.OnDateSetListener date; private int pYear; private int pMonth; private int pDay; static final int DATE_DIALOG_ID = 0; myCalendar = Calendar.getInstance(); pYear = myCalendar.get(Calendar.YEAR); pMonth = myCalendar.get(Calendar.MONTH); pDay = myCalendar.get(Calendar.DAY_OF_MONTH); dobET.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub showDialog(DATE_DIALOG_ID); } }); public Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: date = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { pYear = year; pMonth = monthOfYear; pDay = dayOfMonth; updateLabel(); } }; DatePickerDialog dialog = new DatePickerDialog(this, date, pYear, pMonth, pDay); dialog.getDatePicker().setMaxDate(new Date().getTime()); return dialog; } return null; } private void updateLabel() { String myFormat = "MM-dd-yyyy"; // In which you need put here SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); String myFormat2 = "yyyy-MM-dd"; // In which you need put here SimpleDateFormat sdf2 = new SimpleDateFormat(myFormat2, Locale.US); dateToSave = sdf2.format(myCalendar.getTime()); saveDOBPrefEditor.putString("DOB", dateToSave); saveDOBPrefEditor.commit(); dobET.setText(sdf.format(myCalendar.getTime())); } 

Попробуй это

 DatePickerDialog dialog = null; Calendar myCalendar = Calendar.getInstance(); dobET.setKeyListener(null); DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { myCalendar.set(Calendar.YEAR, year); myCalendar.set(Calendar.MONTH, monthOfYear); myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); updateLabel(); } }; dobET.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.hideSoftInputFromWindow(dobET.getWindowToken(), 0); if(!dialog.isShowing()) { dialog.show(); } Log.d(TAG, "Click Listener fired"); } }); dobET.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean hasFocus) { InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.hideSoftInputFromWindow( dobET.getWindowToken(), 0); if(hasFocus && !(dialog.isShowing())) { dialog.show(); } Log.d(TAG, "Focus Listener " + hasFocus); } }); dialog = new DatePickerDialog(MainActivity.this, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)); private void updateLabel() { String myFormat = "MM/dd/yy"; //In which you need put here SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); dobET.setText(sdf.format(myCalendar.getTime())); } 

надеюсь это поможет ….

 calendar = Calendar.getInstance(); day = calendar.get(Calendar.DAY_OF_MONTH); month = calendar.get(Calendar.MONTH); year = calendar.get(Calendar.YEAR); date.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub date.setCursorVisible(false); datePickerDialog = new DatePickerDialog(CityList.this, new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year1, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub year = year1; month = monthOfYear; day = dayOfMonth; datePickerDialog.updateDate(year, monthOfYear, dayOfMonth); date.setText((month + 1) + "/" + day + "/" + year); } }, year, month, day); // datePickerDialog.setTitle("Select Date"); datePickerDialog.show(); } }); 

Вы можете использовать TextView вместо EditText и изменить Date, нажав кнопку DatePicker

 public class ProfileDetailActivity extends ActionBarActivity { ImageButton birthdate_selector; TextView user_birth_date; Context mContext; Calendar calendar; SimpleDateFormat format; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = ProfileDetailActivity.this; setContentView(R.layout.fragment_profile_edit); birthdate_selector = (ImageButton) findViewById(R.id.birthdate_selector); user_birth_date = (TextView) findViewById(R.id.user_birth_date); birthdate_selector.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DialogFragment newFragment = new DatePickerFragment(); newFragment.show(getSupportFragmentManager(), "datePicker"); } }); } @SuppressLint({ "ValidFragment", "SimpleDateFormat" }) public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { int monthInt = 0, year = 0, month = 0, day = 0; String[] separated = intent.getStringExtra("birth_date").split(" "); calendar = Calendar.getInstance(); try { calendar.setTime(new SimpleDateFormat("MMM").parse(separated[1])); monthInt = calendar.get(Calendar.MONTH); year = Integer.parseInt(separated[3]); month = monthInt; day = Integer.parseInt(separated[0]); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } if (Config.isDebugEnabled) { Log.e("Date in set:", "day: " + day + " month : " + month + " year: " + year); } // Create a new instance of DatePickerDialog and return it return new DatePickerDialog(getActivity(), this, year, month, day); } @Override public void onDateSet(DatePicker view, int year, int month, int day) { final Calendar c = Calendar.getInstance(); int yy = c.get(Calendar.YEAR); int mm = c.get(Calendar.MONTH); int dd = c.get(Calendar.DAY_OF_MONTH); format = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date1 = null; java.util.Date date2 = null; try { date1 = format.parse(year + "-" + (month + 1) + "-" + day); date2 = format.parse(yy + "-" + mm + "-" + dd); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } int diffInDays = (int) ((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24)); int diffInYears = diffInDays / 365; if (type.equals("parent")) { if (diffInYears < 15) { user_birth_date.setError("Please enter valid birthdate ."); user_birth_date.setText(null); } else { format = new SimpleDateFormat("d"); calendar = new GregorianCalendar(year, month, day); format = new SimpleDateFormat("d MMM , yyyy"); view_date = format.format(calendar.getTime()); // view_date = year+"-"+(month+1)+"-"+day; user_birth_date.setText(view_date); } } if (type.equals("student")) { if (diffInYears < 3) { user_birth_date.setError("Please enter valid birthdate ."); user_birth_date.setText(null); } else { format = new SimpleDateFormat("d"); calendar = new GregorianCalendar(year, month, day); format = new SimpleDateFormat("d MMM , yyyy"); view_date = format.format(calendar.getTime()); // view_date = year+"-"+(month+1)+"-"+day; user_birth_date.setText(view_date); } } } } } 

Попробуйте эту последовательность:

В Xml

 <EditText android:id="@+id/etDate" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="number" android:onClick="showDatePickerDialog" //on click of this edittext showDatePickerDialog below method will be called android:textSize="12dp" /> 

В классе активности

 EditText etDate = (EditText) findViewById(R.id.etDate); public void showDatePickerDialog(View v) { DialogFragment newFragment = new DatePickerFragment(); newFragment.show(getFragmentManager(), "datePicker"); } private class DatePickerFragment extends DialogFragment implements OnDateSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); return new DatePickerDialog(getActivity(), this, year, month, day); } public void onDateSet(DatePicker view, int year, int month, int day) { etDate.setText("" + day + "/" + (month + 1) + "/" + year); } } 

И все готово 🙂