У меня есть FromDate EditText
, к которому я добавил изображение. Теперь, когда я нажимаю изображение, отображается Datepicker
. Теперь, когда я выбираю какую-то дату и нажимаю на НаборButton
, дата установлена в EditText
. Проблема в том, что, когда я нажимаю «Отмена» Button
, сборщик даты ушел, и предыдущая активность не фокусируется, пока я не вернусь! На экране не работает сенсорное событие. Пожалуйста, помогите ...Отменить кнопку на datepicker android
1
A
ответ
7
Я не верю, что это может быть лучший способ сделать это ... но некоторые из них, как работает следующий код; получил некоторые рекомендации по этой ссылке https://stackoverflow.com/a/4981308/840520
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_NEGATIVE) {
dialog.dismiss();
onBackPressed();
}
}
});
Поскольку у меня есть осуществление проекта, это работает для меня now.However, я до сих пор ищу достойный способ обращения с этим. Платформа Android не обрабатывает кнопку отмены, как и для других диалогов?
1
Я реализовал выбор даты с отменой обработки и с работой с EditText события .. Может быть, это поможет кому-то, кто хочет очистить текст на отменить событие ..
private EditText dob;
static final int DATE_DIALOG_ID = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.browse);
dob = (EditText) findViewById(R.id.txtDob);
/* For DOB EditText */
dob.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (v == dob)
showDialog(DATE_DIALOG_ID);
return false;
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
final int cyear, cmonth, cday;
if (dob.getText().equals("")) {
Calendar c = Calendar.getInstance();
cyear = c.get(Calendar.YEAR);
cmonth = c.get(Calendar.MONTH);
cday = c.get(Calendar.DAY_OF_MONTH);
} else {
String[] datestr = dob.getText().toString().split("-");
cyear = Integer.parseInt(datestr[0]);
cmonth = Integer.parseInt(datestr[1]);
cday = Integer.parseInt(datestr[2]);
}
switch (id) {
case DATE_DIALOG_ID:
// return new DatePickerDialog(this, mDateSetListener, cyear,
// cmonth,cday);
DatePickerDialog dateDlg = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
String date_selected = String.valueOf(year)
+ "-"
+ ((String.valueOf(monthOfYear + 1)
.length() == 1 ? "0"
+ String.valueOf(monthOfYear + 1)
: String.valueOf(monthOfYear + 1)))
+ "-"
+ ((String.valueOf(dayOfMonth).length() == 1 ? "0"
+ String.valueOf(dayOfMonth)
: String.valueOf(dayOfMonth)));
dob.setText(date_selected);
}
}, cyear, cmonth, cday);
dateDlg.setTitle(getString(R.string.dob));
dateDlg.setCancelable(false);
dateDlg.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dob.setText("");
dialog.dismiss();
}
});
return dateDlg;
}
return null;
}