我正在尝试检查 editText 首选项的输入格式,在本例中为 24 小时格式 H:mm,如果出现输入格式错误,我想强制编辑对话框再次出现。
我的想法是使用在实现 PreferenceScreen 的设置活动上运行的 OnPreferenceChange 侦听器:
@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) 获取对话框,但由于运行时不再显示,我得到一个空指针:(
此外,我不确定这是否是检查 HOUR 和 MINUTE 输入格式的最佳方法。
谢谢!