Я пытаюсь проверить формат ввода для предпочтения editText, в этом случае 24-часовой формат H: mm, и я хочу, чтобы диалоговое окно редактирования снова появлялось, если есть ошибка формата ввода.
Моя идея заключается в том, чтобы использовать прослушиватель OnPreferenceChange, работающий в действии «Настройки», который реализует PreferenceScreen:
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
//check 24 hour format
SharedPreferences myPreferences = PreferenceManager.getDefaultSharedPreferences(ctx);
String startTime= myPreferences.getString(PREF_FLAT_RATE_START, "18:00");
try{
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date time = sdf.parse(startTime);
}catch (Exception e){ //If exception there is a format error...
Log.v("Settings", "rateTime not properly formatted");
---> Re Open Dialog from EditText key = PREF_FLAT_RATE_START <---
}
}
Возможно ли это?Я уже пытался получить диалог из findViewByid (EDITTEXT), но, поскольку он больше не отображается, когда он запущен, я получаю нулевой указатель: (
Также я не уверен, что это лучший способпроверьте формат ввода для ЧАС и МИНУТ.
Спасибо!