Na moim widoku mam przycisk, który po naciśnięciu wyskakuje DatePickerDialog. W oknie podręcznym pojawi się przycisk "Gotowe". Po naciśnięciu tego przycisku wybrana data zostanie umieszczona w polu EditText.Odrzuć DatePickerDialog po naciśnięciu przycisku cofania
Teraz, po naciśnięciu przycisku Wstecz (), nadal wypełnia datę w EditText. Jak zamknąć okno bez zwracania z niego wartości.
Jest to kod mam got-
Aktywność który powołuje się na fragment:
public class TransactionActivity extends FragmentActivity implements iRibbonMenuCallback {
.....
public void selectDate(View view) {
// This is the method invoked by the button
SelectDateFragment newFragment = new SelectDateFragment();
newFragment.show(getSupportFragmentManager(), "DatePicker");
}
public void populateSetDate(int year, int month, int day) {
// Puts the date in the EditText box
mEdit = (EditText)findViewById(R.id.DateText);
mEdit.setText(month+"/"+day+"/"+year);
}
}
Fragment dla okna (na podstawie this stronę na Android przewodników API):
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@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) {
// Calls a method on the activity which invokes this fragment
((TransactionActivity)getActivity()).populateSetDate(yy, mm+1, dd);
}
}
Nie istnieje metoda analogiczna do onDataSet do obsługi przypadku, gdy dane nie zostały ustawione.
Czy istnieje sposób, aby anulować/odrzucić wyskakujący datepicker bez pobierania jego wartości?
Dzięki.
To nie wydają się działać. To, co starałem: \t 'dialog.setOnKeyListener (nowa Dialog.OnKeyListener() { \t \t @Override \t \t public boolean onkey (DialogInterface arg0, int keyCode, wydarzenie keyEvent) { \t \t \t if (kEYCODE == KeyEvent.KEYCODE_BACK) { \t \t \t \t dialog.dismiss(); } zwraca fałsz; \t} }); ' – Bharat