Я хочу проверить, что значение EditTextPreference
находится в пределах определенного диапазона int
(скажем, от 1 до 22).Единственная часть, которую я мог проверить, была inputType
(только число) со следующим объявлением xml в файле prefs.xml.
android: inputType = "number"
Второе, что я сделал, - это напишите следующий код в действии ListSettings
.
public class ListSettings extends PreferenceActivity implements OnSharedPreferenceChangeListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.registerOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
String value = sp.getString(key, null);
int intZoomValue = Integer.parseInt(value);
if (intZoomValue < 1 || intZoomValue > 22) {
Intent intent = new Intent().setClass(this, dialog.class);
// I want to call the dialog activity here...
}
}
и dialog.class выглядит следующим образом:
public class dialog extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Please enter a value between 1-22!");
builder.setCancelable(true);
AlertDialog alert = builder.create();
alert.show();
}
}
ЧтоЯ хочу добиться - вызывать dialog.class
(диалоговое окно с предупреждением) всякий раз, когда пользователь вводит значение, не находящееся в диапазоне 1-22.
Я не могу понять, как правильно проверить правильность пути.