editTextプリファレンスの入力の形式(この場合は24時間形式のH:mm)を確認しようとしていますが、入力形式のエラーが発生した場合は、編集ダイアログを強制的に再表示したいと思います。
私の考えは、PreferenceScreenを実装するSettingsアクティビティで実行される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)からダイアログを取得しようとしましたが、実行すると表示されなくなったため、nullポインターを取得します:(
また、これがHOURとMINUTEの入力形式を確認するための最良の方法であるかどうかもわかりません。
ありがとう!