Voglio mostrare la finestra di popup di datepicker. Ho trovato alcuni esempi ma non riesco a farlo correttamente. Ho un pulsante e voglio che quando faccio clic sul pulsante la finestra di dialogo DatePicker dovrebbe apparire e dopo aver impostato la data, la data dovrebbe essere memorizzata in una variabile. Vi preghiamo di fornirmi codice di esempio o buoni collegamenti.Datepicker: Come popup datepicker quando si fa clic sul pulsante e si memorizza il valore nella variabile
risposta
rendere questa classe come classe interna nella vostra attività
se si vuole impostare la data corrente come data si vede quando si apre il DatePicker. È possibile ottenere in questo modo
Calendar c = Calendar.getInstance();
int startYear = c.get(Calendar.YEAR);
int startMonth = c.get(Calendar.MONTH);
int startDay = c.get(Calendar.DAY_OF_MONTH);
class StartDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// TODO Auto-generated method stub
// Use the current date as the default date in the picker
DatePickerDialog dialog = new DatePickerDialog(BookingFormActivity.this, this, startYear, startMonth, startDay);
return dialog;
}
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
// Do something with the date chosen by the user
startYear = year;
startMonth = monthOfYear;
startDay = dayOfMonth;
updateStartDateDisplay();
}
}
è possibile chiamare questa finestra impostando questo metodo per onClick
public void showStartDateDialog(View v){
DialogFragment dialogFragment = new StartDatePicker();
dialogFragment.show(getFragmentManager(), "start_date_picker");
}
dove è implementato 'updateStartDateDisplay'? In che modo "StartDatePicker" è a conoscenza di questo metodo? – MOnsDaR
Prova questo.
Utilizzare questo codice nel tasto clic. La finestra di dialogo del selettore della data verrà mostrata.
Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
System.out.println("the selected " + mDay);
DatePickerDialog dialog = new DatePickerDialog(Registration.this,
new mDateSetListener(), mYear, mMonth, mDay);
dialog.show();
Quindi, la classe mDateSetListener
deve essere scritta.
class mDateSetListener implements DatePickerDialog.OnDateSetListener {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
// getCalender();
int mYear = year;
int mMonth = monthOfYear;
int mDay = dayOfMonth;
v.setText(new StringBuilder()
// Month is 0 based so add 1
.append(mMonth + 1).append("/").append(mDay).append("/")
.append(mYear).append(" "));
System.out.println(v.getText().toString());
}
}
Si prega di controllare questa risposta e votare.
Come viene importato il 'Registration.this'? – Abbe
@Abbe 'Registration.this' è solo il riferimento all'istanza dell'attività denominata' Registration' poiché 'DatePickerDialog' richiede un' Context' e ogni 'Activity' è un' Context'. Usi "ActivityName.this" invece di "questo" quando sei in un ambito diverso, come in un listener di eventi. –
http://stackoverflow.com/questions/18672094/android-sdk-datepickerfragment-and-textview/18672134#18672134. controllare questo – Raghunandan
Possibile duplicato di [this] (http://stackoverflow.com/q/14933330/1952459). Ti suggerisco di cercare prima su Google o qui su StackOverflow per i tuoi problemi e poi pubblicare la domanda. –
http://www.mkyong.com/android/android-date-picker-example/ controlla questo –